1. 程式人生 > >批量製作IDA靜態庫簽名檔案的指令碼

批量製作IDA靜態庫簽名檔案的指令碼

網上有很多文章介紹製作靜態庫簽名(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 %%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簽名的目錄結構: