IDA生成sig签名文件

IDA介绍

IDA是一款强大的静态分析(程序不需要运行时直接查看汇编)工具,OD相反,OD是强大的动态追踪(程序运行时分析)工具

IDA签名的作用

因为有些版本的IDE在release版本下IDA识别不了库的函数名,如我在vc6.0下选择MT(多线程静态编译),release版本编译一个pritnf的程序
代码如下:

int main(int argc, char* argv[])
{
    printf("%d\r\n", argc / 8);
    return 0;
}

用IDA加载反汇编如下:
在这里插入图片描述
注意:这个时候可以自己提取库中对应的.obj来生成sig文件了,通过sig文件来识别库函数名,记住你的库中的实现也就是二进制一定要和你要识别的函数名是一样的,如上面的call sub_401020对应的是vc6.0的printf实现,你就必须要从vc6.0的lib中查找这个实现,这样你才能保证实现是一样的,这样的话生成的sig才能生成对应识别的函数名,因为sig文件也是通过函数实现的特征码去辨别的,所以要一样

IDA签名生成的步骤

那上面的举例
1需要两个工具,一个是pcf.exe来提取.obj的特征码,一个是sigmake.exe来生成.sig文件
2命令:lib /extract: xxxxx.obj lib文件名 提取你想要的.obj,可以通过命令:lib /list xxx.lib 来显示有哪些.obj
3使用pcf.exe(特征提取工具)生成.pat 命令:pcf xxxx.obj 默认生成xxx.pat文件
4使用sigmake生成.sig文件. 命令:sigmake xxxx.pat xxxx.sig 生成.sig文件
5把生成的.sig文件添加到IDA对应的sig—pc目录下,我用的是7.0,打开文件autoload.cfg添加一行.sig的文件名,如下图
在这里插入图片描述
6打开IDA 加载PE文件后 点击view-“Open subview”-Signatures(快捷键shift+F5)打开已应用的签名窗口
在这里插入图片描述
7右键点击“Apply new signature”,搜索刚添加的.sig文件,我的是printf.sig,点击OK
在这里插入图片描述
8成功命中函数后如下图,会显示函数命中几个,然后回到刚刚的代码查看就有了名称
在这里插入图片描述
在这里插入图片描述

你也可以写脚本或者写代码自动生成sig文件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值