首页
社区
课程
招聘
[原创]IDA7.0 Mac 插件编译指南
发表于: 2017-12-8 18:19 11429

[原创]IDA7.0 Mac 插件编译指南

2017-12-8 18:19
11429

先说两句

前不久IDA7.0发布,这次相较之前来说有很多的改动,首先整个IDA是x86 64位架构,而之前却一直是i386 32位,因此插件同样为64位的dylib。不仅这样,SDK上某些接口也发生了改变,导致很多优秀的插件不得不重新改动源码,很多在IDA7上编译也存在问题。下面我将以IDA的官方插件findcrypt2来说明IDA7的插件编译细节。编译IDA插件是个麻烦事,主要在于网上相关的资料很少,唯一的几篇也是年代久远,Makefile里面很多编译参数都有变化,目前来说,没有一个完整的文章来介绍如何在Mac平台下编译IDA插件的指南。希望这篇文章能够对有这需求的人有所帮助。

搭建xcode环境

在Mac上完全可以用xcode来帮助我们编译IDA插件,其实更常见的是用Makefile编译,但原理一样,所以这里就以xcode来介绍。

 

我们知道IDA的插件的文件格式为dylib动态库,因此在创建xcode项目时在Framework&Libarry中选择Libarry

 

xcode_step_1

 

然后再选择为Dynamic动态库,并导入C++标准库

 

xcode_step_2

 

接下来项目中自动会生成两个文件。暂时不用管,我们把findcrypt2的源码放入该项目,最后如下图所示

 

project_1

 

这时你的项目中像ida.hpp这类的头文件肯定会提示找不到,还需要进一步设置。

Build Setting

这里我们将设置头文件和库的搜索路径等等。

 

首先设置目标架构为x86_64

 

arch_s

 

然后设置头文件和库的搜索路径,依据你IDA及sdk路径改成对应路径

 

search_s

 

经过上面的设置,此时xcode应该能找到头文件了,这时还需要设置连接的静态库

 

link_s

 

这里连接的库为-lida64,表示我们编译的是解析64位的插件,若要编译解析32位的插件,这里为-lida即可。

 

最后我们还需要设置编译参数

 

macros_s

 

其中__EA64__在编译64位插件时才有。

 

这时候build一下,如果一切顺利,应该就不会报错了。

最后说两句

IDA7相以前版本而言,插件的后缀名统一为dylib格式,之前32位为pmc,64位为pmc64。这里将编译好的插件改为findcrypt264.dylib表示为64位插件,则对应的32位插件名为findcryt.dylib

 

下面测试下效果,我们打开IDA去解析一个含有md4加密的macho文件,运行插件测试能否识别出其中的加密算法。

 

test

 

上图我们可以看到这里成功找到一处md4加密,反汇编窗口中正是md4加密中用到的常量数组。我顺便为插件注册了Ctrl-Alt-z的快捷键,若没有快捷键,可以在插件的导航栏里点击对应的插件即可。

附上该插件,完。

 

findcrypt264.dylib_for_ida7_made_by_x1a0

参考链接


[课程]Android-CTF解题方法汇总!

收藏
免费 2
支持
分享
最新回复 (6)
雪    币: 3907
活跃值: (5817)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
2
写的很详细不错不错
2017-12-8 18:39
0
雪    币: 6890
活跃值: (8944)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
3
学习了
2017-12-8 19:24
0
雪    币: 290
活跃值: (43)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
原来是滴滴大佬,膜
2017-12-8 19:34
0
雪    币: 18
活跃值: (1009)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
5
idapro7.0插件的sdk有下载吗?
2017-12-8 22:26
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不错、很好
2018-6-1 08:03
0
雪    币: 244
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
非常棒的文章
2018-6-28 12:32
0
游客
登录 | 注册 方可回帖
返回
//