引言
大🔥在使用ida时经常会遇到一些情形
ida是如何识别二进制程序的函数名称呢?
sig文件
IDA通过sig
文件对函数进行识别,在IDA内部预设了一些sig
文件,就在IDA安装的sig目录
下。
制作sig文件
1.用obj/lib文件制造PAT文件
首先我们需要知道,制造sig文件需要有obj/lib
文件。
obj文件 即包含一个程序的函数名称及其二进制代码的文件 lib文件 lib文件中包含若干obj文件
将obj/lib
文件制作成PAT
文件
PAT文件,从obj/lib中提取的函数名称和二进制特征码
用IDA7.0中带有的flair70
来进行文件的转换
1.添加flair70目录到环境变量中
2.使用如下命令
pcf [Obj name].obj
pcf [Lib name].lib
//上述2条命令用于生成pat文件,pcf用于制造COFF文件格式(.obj,.lib),pelf用于制造ELF文件格式(.o,.a)
2.多联合pat生成sig文件
sigmake [Pat name].pat [Sig name].sig //*.pat
会提取当前目录下的所有pat文件合成一个sig文件
写一个批处理脚本来实现一键操作
if %1=="" goto end
for %%i in (*.lib,*.obj) do (pcf %%i)
sigmake -r *.pat %1.sig
del *.pat
:end
将生成的sig文件放入ida目录下的sig文件夹中