函数识别:制作sig文件

2023-02-18

引言

大🔥在使用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文件夹中