IDA 是另一款功能强大的商业版反汇编工具,适用于静态分析和动态分析,而且支持多平台。

基于其 SDK 开发的插件有很多,这些插件能给分析工作带来极大的便利,下述是常见插件的列表:
https://www.hex-rays.com/contests/
https://github.com/topics/ida-plugin
https://github.com/onethawt/idaplugins-list
我们知道,对刚修复的漏洞,具体细节不会很快公布,如果我们想对此进行深入研究,则往往需要借助补丁比对的方法来定位程序中的漏洞点。拿闭源的 Windows 系统来说,也就是比对二进制文件,而通过 IDA 插件能方便的完成这部分工作。
首先我们需要获取补丁前后的文件,这里给出的例子是不同版本kernel32.dll
文件的比对。其中pdb
文件可由符号服务器得到,将其放在待分析文件的同目录下就可以了,IDA 会有相应的提示,pdb
文件能给之后的分析工作带来帮助:

用于补丁比对的 IDA 插件有多个,我们选用的是BinDiff
,对那些存在变化的函数,可得到类似如下的比对图:

漏洞点定位一般还是有难度的,特别是对改动比较大的版本,这时可能需要借助一些过滤的技巧,再配合上耐心。
IDA 中还有很多实用的插件有待我们发现,当然,能自行开发就更好了。