SIG在IDA中相当于符号文件的作用,如果是自己写的PE程序,编译后会有OBJ文件,可以通过工具把它转化为一个SIG 便于在IDA观看。要应用SIG需要把SIG文件拷贝到IDA目录下的sig文件夹中,然后在IDA中shift+F5在右键添加相应添加相应的项目,反汇编中的函数名就会变为原本的函数名,这样方便查看。如果是第三方lib 也可以转换出一个sig 其中转换需要用到的工具有 pcf.exe link.exe sigmake.exe 这三个文件可以从《C++反汇编与逆向分析》的随书文件得到 为了方便使用可以三个文件拷贝到system32
1.OBJ转SIG
pcf test.obj sigmake test.pat test.sig 第一步得到PAT文件 第二步生成sig文件
2.lib转SIG
由于lib里边有很多OBJ所以这里用批处理文本来写,从《C++反汇编与逆向分析》得到以下代码
md %1_objs cd %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 cd .. del %1_objs /s /q rd %1_objs
保存为.BAT文件执行即可
总结:
创建签名步骤如下:
1.获得一个你希望为其创建签名文件的静态库。
2.利用其中的一个FLAIR解析器为该库创建一个模式文件。
3.运行sigmake.exe来处理生成的模式文件,并生成一个签名文件。
4.将新的签名文件复制到<IDADIR>/sig目录中,安装这个文件。
转载于:https://blog.51cto.com/whatday/1382675