IDA 高级功能使用 之 制作signature —— 识别库函数
本文详细介绍一下IDA中 识别库函数代码的方法。
如果程序是静态编译的并且去除了符号表,那么使用IDA制作signature可以快速识别出哪些是库函数,大大减小逆向分析的工作量。
0x01 步骤
简单步骤:
-
获取libc.a(libc的静态库),如果未知,通过file、 strings -a(扫描中整个二进制文件,但是我测试都一样)查看libc。
-
下载FLAIR 插件(工具包),使用pelf(pattern)根据libc.a 创建模版文件,libc.a请在linux文件系统中自行搜索。
./pelf libc.a-x86_64-linux-gnu libc.a-x86_64-linux-gnu.pat
- 根据pat模版文件,制作签名文件。-n代表注释。
注意,制作签名文件时,看你存在冲突,修改一下冲突的一个文件,如果有两个以上的冲突,选择要的那一个,前面输入+即可。
./sigmake -n"libc.a-x86_64-linux-gnu.sig" libc.a-x86_64-linux-gnu.pat libc.a-x86_64-linux-gnu.sig
- 复制sig文件到 IDA安装目录下sig/pc的目录下,如下图所示(这里我踩坑踩了好久。因此注意请自己验证,书上和网上大部分博客都说是sig目录下)。打开IDA 加载, shift+F5,右键添加新的签名文件。
0x02 效果
0xFF参考
- 《IDA Pro 权威指南第二版》chapter 12