网上有很多文章介绍制作静态库签名(sig)文件,供IDA加载使用。这些文中都提到一个批处理文件:lib2sig.bat,不得不说这是一个很强大的脚本----一次为一个lib文件生成sig文件。 但是,美中不足的地方是:如果需要为大量lib文件制作sig文件,还是有点麻烦,所以,我为此对这个脚本进行了修改,并另外写了一个脚本配合着调用它。

1.先看lib2sig.bat:

md %1_objs
copy %1.lib %1_objs
pushd %1_objs
for /f %%i in ('link -lib /list %1.lib') do link -lib /extract:%%i %1.lib
for %%i in (*.obj) do pcf -g0 %%i
sigmake -n"%1.lib" *.pat %1.sig
if exist %1.exc for %%i in (%1.exc) do find /v ";" %%i > abc.exc
if exist %1.exc for %%i in (%1.exc) do > abc.exc more +2 "%%i"
copy abc.exc %1.exc
del abc.exc
sigmake -n"%1.lib" *.pat %1.sig
copy %1.sig ..\%1.sig
popd
del %1_objs /s /q
rd %1_objs

新增了第二行,将lib文件拷贝到新建的lib目录中,以后解压lib/签名都在这个目录中进行。

2.再看下调用lib2sig.bat的脚本libs.bat:

for %%i in (*.lib) do lib2sig.bat %%~ni

这个脚本搜索当前目录下的所有需要制作sig签名的lib文件,然后取lib文件的文件名作为参数,调用lib2sig.bat。

下图是我制作sig签名的目录结构:

批量制作IDA静态库签名文件的脚本_下载地址

​​脚本下载地址​​