利用ida pro的flare功能识别静态链接函数签名

前言

在逆向分析的过程中,如果一个静态链接文件被去除了函数签名,那么整个文件将会变得极其难以识别,我们很难通过手动去识别各个库函数。好在ida pro提供了利用模式识别方式进行识别的功能,使得我们可以很快速的得到很多函数的签名。

FLIRT

IDA拥有一个FLIRT技术,全称Fast Library Identification and Recognition Technology,即快速库识别和检测技术。这项技术的目的就是为了从文件中识别库函数,对于我们想要的这种情况来说非常适合。

文件创建即使用

FLIRT依赖于sig文件,sig文件需要通过一个工具来进行创建,ida一般会带有这个工具,叫做flairflair通过先生成.pat文件,即一个模式文件,然后通过sigmake工具从.pat文件里得到.sig文件最终用于识别。

在flair的bin文件夹里的几个工具:
* pcf/pelf用来得到.pat文件,分别对应coff文件和elf文件,但是要求文件是静态链接的
* sigmake用来从.pat文件里提取得到.sig文件

得到.sig文件之后就可以应用到分析当中了,应用方法也很简单:
在ida中:file -> Load file -> flirt signature file就可以应用了,如果需要应用自己的.sig文件,需要将该.sig文件放到ida文件夹里sig文件夹下,就可以load 了。 之后通过subview里的signature就可以看到已经应用的签名文件了,也可以看到该签名文件识别了多少函数。

对于ctf来说,常用的flirt签名文件可以在这个repo找到

原理

其实flirt技术的原理还是比较简单的,是一种基于模式匹配的方法,具体方法是通过一个函数的前32个字节,将需要改动的字节留空,然后建立函数的签名表用于匹配,如果有两个函数前32个字节一样,那么就通过其后的字节开始(33字节),然后截取出从33字节一直到下一个需要改动的字节之前(比如下一个需要重定位的字节之前),用这段字节串做一个crc16,记录下crc16的值和长度用来作为其签名,在应用的时候进行模式匹配即可。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读