IDA函数特征识别自动签名
IDA函数特征识别自动签名
Vc6编译的有些无法识别一些库里面的函数
测试代码
#include <stdio.h>
int main()
{
printf("123456\n");
for (int i = 0; i < 4; i++)
{
printf("adadasdas\n");
}
return 0;
}
release版本
IDA识别情况
这里的printf没有被识别出来
我们当然可以去猜是printf,这里讲如何手工导入sig让ida识别
首先要注意我们程序的版本,是debug版本还是说release版本,单线程还是多线程等,这关系到我们下面libc的选择
libc
我们这个release,单线程,非静态。选libc.lib就好
特征识别
使用link提取
link -lib /List libc.lib
这样就可以看里面有啥,我们找到printf
把名称全copy下来
build\intel\st_obj\printf.obj
提取obj
link -lib /EXTRACT:build\intel\st_obj\printf.obj libc.lib
使用flair中的pcf提取特征
pcf printf.obj
会生成一个printf特征的pat
签名文件
使用sigmake完成操作
sigmake -n"vc6_printf" printf.pat printf.sig
放入IDA的sig目录,并在加载文件加入
然后在IDA进入签名窗口
都完成后发现
这样一个就完成了