在逆向分析软件的时候,会遇到应用程序静态链接了某些开源的库,而IDA并不能对这些开源的
库函数进行识别,这时候就需要我们去制作对应库文件的 函数签名文件,帮助IDA识别静态链接的
库函数。
需要的工具以及文件:pcf.exe - 生成模式文件的工具; sigmake.exe - 生成sig文件的工具;
开源库的源代码,编译器。
注意:I.因为不同编译器生成的汇编代码是不同的。所以,你最好要知道你的目标软件是用
什么编译器编译生成的,否则生成的sig文件将无法帮助IDA识别静态链接的函数。
II.制作pat文件时会遇到冲突,可根据.exc文件的提示解决冲突。
下面我将举一个简单的栗子,生成一个静态库,然后写一个简单程序静态链接库函数,
制作sig文件,让IDA识别这个静态库函数。
1. 用Dev C++ 创建一个静态库 ,并用 Release 编译这个库。
2. 写一个调用这个静态库函数的简单程序。
直接编译是过不了的,要添加.a文件才能过编译。
添加.a文件:
并且要设置去除符号链接:
现在可以用Release 编译了:
3. 先IDA载入刚刚编译好的程序看看main函数。
很明显没能识别出静态编译的函数。好了,现在我们来制作sig文件来识别静态库函数。
4. 制作 pat 文件
5.制作 sig 文件
6.把sig文件拷贝到IDA sig的目录,在IDA shift+F5 已经可以识别了。
7.查看结果啦~