IDA 是另一款功能强大的商业版反汇编工具,适用于静态分析和动态分析,而且支持多平台。
![2.JPG](https://i.loli.net/2017/12/22/5a3cb96ecba37.jpg)
基于其 SDK 开发的插件有很多,这些插件能给分析工作带来极大的便利,下述是常见插件的列表:
[https://www.hex-rays.com/contests/](https://www.hex-rays.com/contests/)
[https://github.com/topics/ida-plugin](https://github.com/topics/ida-plugin)
[https://github.com/onethawt/idaplugins-list](https://github.com/onethawt/idaplugins-list)
我们知道,对刚修复的漏洞,具体细节不会很快公布,如果我们想对此进行深入研究,则往往需要借助补丁比对的方法来定位程序中的漏洞点。拿闭源的 Windows 系统来说,也就是比对二进制文件,而通过 IDA 插件能方便的完成这部分工作。
首先我们需要获取补丁前后的文件,这里给出的例子是不同版本`kernel32.dll`文件的比对。其中`pdb`文件可由符号服务器得到,将其放在待分析文件的同目录下就可以了,IDA 会有相应的提示,`pdb`文件能给之后的分析工作带来帮助:
![3.JPG](https://i.loli.net/2017/12/22/5a3cc4690e73e.jpg)
用于补丁比对的 IDA 插件有多个,我们选用的是`BinDiff`,对那些存在变化的函数,可得到类似如下的比对图:
![5.JPG](https://i.loli.net/2017/12/22/5a3cc64aa4405.jpg)
漏洞点定位一般还是有难度的,特别是对改动比较大的版本,这时可能需要借助一些过滤的技巧,再配合上耐心。
IDA 中还有很多实用的插件有待我们发现,当然,能自行开发就更好了。