首页
社区
课程
招聘
[转帖]IDA 5.2 插件开发
发表于: 2008-9-4 11:11 17329

[转帖]IDA 5.2 插件开发

2008-9-4 11:11
17329
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

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (23)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢。第二个下载,有人下载了也不吭一声。
2008-9-4 12:51
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持64位..
2008-9-4 14:02
0
雪    币: 226
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
留个爪····
2008-9-4 14:56
0
雪    币: 314
活跃值: (10)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
5
要是可以讲得详细点。比如用其他mingw等编译器开发那就好了。vs太大了,我没有装,只在用mingw+codeblocks的组合。按照idasdk中的说明试了好久都没有配置好。知道的给我个答案奥。谢了
2008-9-4 17:57
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2008太大了
2008-9-5 13:17
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主真是厉害啊。
2008-9-8 19:27
0
雪    币: 123
活跃值: (95)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
膜拜中,呵呵,还不知道什么时候能写出一个自己的IDA插件哦。
2008-9-25 23:18
0
雪    币: 248
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢,非常好
2008-10-16 10:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主真NB,佩服佩服
2008-10-19 20:10
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
IDAPro本身有Hwnd句柄,只要操作句柄就ok了.
2008-12-13 15:14
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持,严重支持
2009-2-3 14:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
多谢共享
2009-2-13 10:50
0
雪    币: 79
活跃值: (35)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
14
C#如何调用IDA SDK中的函数呢?

要是能实现这一个,就可以用强大易用的C#来开发IDA插件了
2009-2-22 19:19
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
顶一个 ,留个印记
2009-2-23 19:20
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢楼主分享了!
2009-4-3 21:04
0
雪    币: 71
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
2009-5-6 20:54
0
雪    币: 244
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
顶一个,楼主很帅!
2009-5-30 11:46
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
感兴趣中……
2009-7-21 11:28
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
顶顶 学习
2009-10-16 01:44
0
雪    币: 53
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习了 。。。
2010-2-7 16:21
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
呵呵 谢谢  顶
2010-5-7 14:44
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
   哦 呵呵 我看过了  我发现自己好健忘!
2010-5-7 14:45
0
雪    币: 62
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
好东西支持一下~~~~
2010-7-27 22:59
0
游客
登录 | 注册 方可回帖
返回
//