IDA 5.2 插件开发
建议下载附件查看该文档,附件内包括完整的PDF文档及演示代码。
Author:7all@cisrg.cn
由于最近需要分析X64下的汇编代码,于是准备使用之前的老办法,基于图形化的办法来分析程序的流程,不过IDA5.2自身带的图形化对比工具实在不适合我的眼睛,之前的IDA图形化插件是基于X86汇编代码的分析,无法运行在IDA 64位平台下,于是准备把X86平台下的IDA图形化插件移植到X64平台下,在移植的过程中,遇到了若干小问题,正是因为这些若干小问题的存在,导致了该文档的出现;该文档试图比较完善的介绍下IDA5.2下32、64平台下的IDA插件开发流程,希望对喜欢编写IDA插件的朋友有所帮助。
该文档内,使用的编译器版本为Visual Studio 2008英文版,相应的编译选项设置也使用了英文。
1、IDA32 5.2 版插件开发
a)项目创建流程
i.打开VS2008,依次选择File->New->Project;
ii.选择Project types选项列表内的Win32选项,选择Templates选项列表内的Win32 Project选项;
iii.输入项目名称,选择好自己喜欢的创建项目的方式,点击OK按钮;
iv.在Application Settings选项卡内,选择Windows application,选择Empty project,点击Finish;
v.新建一个cpp文件,用于后面的例子实现;
vi.依次选择Project->Your project name Properties,打开Property Pages;
vii.选择Configuration Properties下的General选项,选择右侧列表内Configuration type选项卡,选择Dynamic Library (.dll);
viii.选择C/C++下的General选项,添加Additional Include Directories选项,选择IDA SDK include所在的目录即可,也可填写相对路径;
ix.选择Preprocessor,添加(;__NT__;__IDP__)至Preprocessor Definitions选项内;
x.选择Advanced选项,修改Calling Convention选项为__stdcall (/Gz);
xi.选择Linker选项,修改右侧选项卡的Output File内的后缀名为.plw,添加Additional Library Directories为IDA的Lib库路径;
xii.选择Linker选项下的Input,添加ida.lib到Additional Dependencies选项内;
xiii. 选择Linker下Command line选项,添加/EXPORT:PLUGIN到Additional options内;
xiv. 书写IDA代码后,编译项目,IDA例子代码可见附件。
b)Example
见附件内PDF文档
2、IDA64 5.2 版插件开发
要编译上述IDA32平台下的插件支持IDA 64平台,只需修改两处编译选项即可,具体修改选项步骤如下。
a)修改Preprocessor,添加(;__NT__;__IDP__;MAXSTR=1024;__EA64__)至Preprocessor Definitions选项内;
b)修改Linker选项,修改右侧选项卡的Output File内的后缀名为.p64,添加Additional Library Directories为IDA64的Lib库路径;
c)编译运行。
3、总结
该文档通过具体的步骤描述IDA32、IDA64平台下的插件编写步骤,在实际测试过程中,均验证通过,如有任何问题,请纠正。
Email:cis7all@msn.com
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)