官方下载(需要用户名密码):http://www.hex-rays.com/products/ida/support/ida/flair61.zip
FLAIR——库文件快速识别与鉴定技术(Fast Library Acquisition for Identification and Recognition)
========================================================================
FLAIR工具允许您根据对象文件或库文件创建自己的签名文件,适用于IDA Pro v3.8或更高版本。
FLAIR包括以下的可执行文件:
Plb parselib处理OMF库,并建立PAT文件
pcf parsecoff处理COFF库,并建立PAT文件
pelf parseelf处理ELF库,并建立PAT文件
ppsx parsepsx处理PSX库,并建立PAT文件(索尼PlayStation)
ptmobj parsetobj处理Trimedia库.... .... ....
pomf166 Keil的C166对象文件(旧格式)
sigmake sigmake以PAT文件作为输入,创建SIG文件
zipsig zipsig压缩和解压SIG文件
dumpsig dumpsig以文本形式转储SIG文件的内容。
创建一个签名的典型方案是:
- 运行分析器创建模式(PAT)文件
- 运行sigmake获得EXC文件和冲突
- 编辑EXC文件解决冲突
- 再次运行sigmake获得SIG文件
- 如果冲突仍然存在,重复上述2个步骤
- 运行zipsig并获得压缩的SIG文件
一个简单的例子
================
假设我们有一个名为SAMPLE.LIB库文件,希望生成一个签名。如果SAMPLE.LIB是OMF库,下面是要做的工作。
只需两个命令:
>PLB SAMPLE.LIB SAMPLE.PAT
>SIGMAKE SAMPLE.PAT SAMPLE.SIG
是的,就这样!
这两个命令后,我们得到一个签名文件,或者是一个冲突文件。如果我们得到一个签名文件——好极了,这就是我们想要的。否则,我们需要处理冲突。冲突文件会被命名为SAMPLE.EXC。如果我们不想研究冲突,那么最快的方法是删除冲突文件的开始处的注释,并再次运行sigmake。 sigmake第二次运行后,我们会得到一个签名文件。我们可以用zipsig来压缩签名文件,节省磁盘空间。
如果SAMPLE.LIB是一个AR/ COFF库,那么我们需要运行PCF而不是PLB。如果您不能确定您的库的格式,可以尝试运行这两个工具(PLB/ PCF)。如果输入库有格式错误,工具会清楚地提示出来。
当然这种方法解决冲突并不是最好的。如果你想得到真正的好的签名文件,你需要通过冲突文件和仔细的检查每个冲突,决定如何处理它。更多关于冲的突信息在SIGMAKE.TXT文件中。
如何使用创建的签名
================================
首先,复制你的签名文件到IDA的SIG子目录。如果你的签名不是针对IBM PC处理器的,那么创建一个特殊的目录放置您的签名。该子目录的名称应该是该处理器的名称。例如,所有c166处理器的签名文件应该放在SIG\C166目录。
启动IDA。
在IDA中,打开签名窗口,点击插入按钮。在列表中选择你的签名点击确认。IDA最终会将你的签名文件输入。
添加函数注释
============================
如果有需要,你可以给库函数添加注释。所有你需要做的是创建一个有函数注释的特殊文件。该文件是IDS格式的。所以,你要下载处理IDS文件的工具。只要把IDS文件放到IDA的IDS\FLIRT子目录,IDA会自动使用它。
启动签名
==================
如果你想让你签名自动套用,那么你需要创建一个启动签名。创建启动签名文件略有不同。您需要为所有编译器的所有模式文件,以创建启动签名文件。我已经把需要在启动目录中创建启动签名的所有文件。
为了使您的签名自动适用于您需要创建启动模式,然后将它们复制到启动目录和运行的startup.bat请注意启动模式的命名约定:EXE文件模式的EXE*. PAT的名称等。
Pascal和Delphi的支持
=========================
Nick Pisanov提供的一些工具,让我们可以从TPU文件创建签名。细节见PASCAL子目录。
杂项
====
关于ZIPSIG工具:此工具允许您将签名文件压缩。压缩后的签名文件占用较少的磁盘空间,但是IDA需要更多的时间来载入。此工具支持输入文件名通配符。
我已经把一些命令文件和EXC文件的例子放在EXAMPLE目录中了。
有关工具的信息,请阅读文件
PLB.TXT
PCF.TXT
SIGMAKE.TXT
如有疑问:<support@hex-rays.com>