《IDA_plugin_编写_中文版》.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《IDA_plugin_编写_中文版》.doc

用C/C++编写IDA插件 [1.0版] 版权? 2005 Steve Micallef steve@ 入门 1.1 为什么会有这本手册? 花了大量时间在IDA SDK中,来阅读那些头文件,以及学习别人的插件源代码后,我觉得应该有一个更简单的方法来开始IDA插件编写。尽管这些头文件中的注释十分翔实,但我发现这样浏览和搜索这些注释有点困难,因为我需要它们时,并不想通过大劳动量的搜索。我想我该写这样一本手册,来帮助那些希望开始学习插件开发的朋友。因此,我决定用一个篇章来介绍如何配置开发环境,让您能更快速地入门。 1.2 涵盖的内容 这本手册将引导您开始编写IDA插件,首先将介绍SDK,然后是介绍在多个平台下,配置插件开发环境。您将得到如何使用各种类和结构的经验,接下来是介绍一些作用广泛的SDK导出函数。最后,我将介绍如何使用IDA API来完成基本的任务,例如,用循环来分析函数,钩挂调试器和操作IDA数据库文件(IDB文件)。当您读完后,您应该能运用自己的知识来编写您自己的插件,希望您能通过社区把您的插件公布出来。 1.3 不包括的内容 尽管IDA的标准版和高级版支持许多其他的平台,但我主要关注于x86平台,因为我在这平台上面有最多的经验。因此,如果您需要全面掌握所有的IDA函数,我建议您去看看其它的那些头文件。 这本手册主要介绍的是“只读(read only)”函数,而不大介绍其它的函数,如添加注释,错误校验,定义结构等等函数。SDK资料中的种类很庞大,不介绍这些函数,是想让手册体积适中。 我开始想介绍netnodes的概念,可是因为IDA SDK的结构和类的成员很复杂,而且还有很多特殊原因,您知道的,手册不会包含一切。如果您确实需要这些知识,请您写信告诉我,可能会在下一个手册版本中来介绍这些,如果没别的特殊原因的话。 1.4 前置知识 首先最重要的是,您应该掌握如何使用IDA,这样您就能够舒服地浏览反汇编代码,以及配置调试器。还有,您应该准备C/C++语言的知识,最好还有x86汇编语言。在这里,C++是非常重要的,因为SDK有相当多的C++代码。如果您对C++不熟悉,但很精通C,您应该至少理解OOP的概念,如类,对象,方法以及继承。 1.5 居家旅行必备良药 编写、运行IDA插件,您需要IDA pro反汇编器4.8版或4.9版,还有IDA SDK(您可以从 处获得,但需要IDA授权许可),以及一个C/C++编译器,象Visual Studio,GCC平台,Borland系列,或其他的。 请注意,4.9版中所做的一些改变,已经被写进手册了。而且,对于4.9版,SDK是稳定的,4.9版的一些函数将不会再改变,也就是说,给4.9版写的插件(通常是二进制形式)也可以在以后的版本中正常工作。 1.6 C/C++之外的选择 如果您对C也不感冒,那么可以看看IDAPython,它是一个函数集,用高级语言Python封装了所有C++ API。要获取更多详细资料,请去 /idapython。还有一份使用IDApython的手册在 /idapython_intro.html,里面有很多详尽的介绍,作者是Ero Carrera。 还有一份介绍使用VB6和C#编写IDA插件的文章,请登陆: /articles/full_view/13。 1.7 关于这本手册 如果您有任何问题、建议或您发现一些错误,请您告诉我,Steve Micallef,邮箱是 steve@。如果您真的从手册中读到对您有帮助的内容,我仍然会写信感谢您,这么做是非常值得的。 因为SDK会不断“长胖”,所以,这本手册也会适时的升级。您将从这里 /idapluginwriting/ 处获得最新版本的手册拷贝。 1.8 致谢 我必须感谢下面列出的朋友,他们对本手册提供了,审校、鼓励以及反馈,下列牛人排名不分顺序: Iifak Guilfanov,Pierre Vandevenne,Eric Landuyt,Vitaly Osipov,Sccott Madison,Andrew Griffiths,Thorsten Schneider和Pedram Amini。 1.9 其他资料 在手册的编写过程中,参考了一份关于IDA插件的文档,该文档介绍了如何使用4.9版的通用脱壳插件,其中包括如何编写这种插件,以及如何运行插件。它可以在: /idabase/unpack_pe/unpacking.pdf 处被找到。如果您对编写插件很积极,您可以去Dataresuce的论坛去寻求帮助(/cig-local/ultimatebb.cgi),当没有官方支持的时候,您可以向Datarescue的人(或者IDA老手)求助,他们会乐意帮助您。 另一个非常棒的地方是 , 在那儿

文档评论(0)

ucut + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档