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进入签名窗口


都完成后发现

这样一个就完成了

posted @ 2023-07-13 10:33  雨后初霁  阅读(275)  评论(0编辑  收藏  举报