如何制作vc6静态链接库的IDA SIG文件

本文详细介绍了如何从VC6的libc.lib中提取obj文件,使用prf、pcf及sigmake工具制作SIG文件的过程。包括修改脚本、处理pat文件冲突等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上有制作vc静态链接库的IDA SIG文件的文章,但是他针对的是VC7, 并且给出的脚本有一点小问题,我基于他的基础做了部分修改:

1. 把vc6下的libc.lib 拷贝到flair61\bin路径下,这样执行prf,sigmake就不用再指定长长的路径

2.尝试用plb制作pat 文件是不成功的,它会返回错误信息:

基本思路是从libc.lib 导出obj文件,用prf制作pat,再用sigmake 制作sig文件;

3. 创建一目录保存libc.lib导出嘚obj文件,假设为libcobj;放在bin 目录下面,进入libobj目录,创建一批处理文件,内容为:

for /F "skip=3"  %%i in ('link.exe -lib /list ..\libc.lib') do echo %%i && link.exe -lib /extract:%%i ..\libc.lib

命名为extract.bat,然后在command line 下执行它,这样就会释放出obj,并放入该文件夹中;

4.然后创建另一批处理文件dopcf.bat,文件内容如下:

for %%i in (*.obj) do ..\pcf.exe -g0 %%i

提示: 由.obj文件生成.pat文件。为了避免pcf.exe在执行的过程中处理非COFF文件时中断、出现提示信息“is not ar/coff file\npress enter to exit”,加上参数"-g0"

在command line 下执行它,就会创建pat 文件

4. 最后一步是制作sig 文件,这时可以通过命令行执行:

sigmake -n"VC6 Static lib"  *.pat vc6libc.sig

这是会产生冲突,不知道为何用sigmake.txt 文档里提到的解决冲突的方法无效(就是在emc冲突函数的前面添加-,+)

我的办法就是,先做一部分,如果有冲突就避掉一些pat文件,直到没冲突,避掉的就不要加进去了,然后在1批批的往里面添加,如果有冲突就用刚刚的方法去做,然后再加下一批直到成功!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值