利用FLIRT恢复静态编译程序的符号

本文详细介绍了如何使用FLAIR工具在IDAPro中恢复静态编译库的函数名称,包括创建pat文件、处理冲突并生成签名文件,以及在IDA中添加签名进行解析的过程。
摘要由CSDN通过智能技术生成

恢复前的函数名

无法判断危险函数

flair工具描述

IDA中提供了一个东西做FLIRT:库文件快速识别与鉴定技术(Fast Library Identification and Recognition Technology),能通过一个静态链接库的签名文件,来快速识别被去符号的程序中的函数,从而为函数找到符号

在IDA的插件目录下有一个flair70.zip的压缩包,里面放着各个版本的FLAIR解析器,win的,mac的,linux的都有

恢复流程

  1. 找到用于静态编译的静态库

  2. 用FLAIR解析器为该库创建一个pat文件

  3. 用sigmake来处理生成的pat文件,并生成一个签名文件

  4. 将生成的签名文件复制到IDA的/sig/目录中

  5. 在IDA中shift+F5,选择添加sig文件进行解析

完整操作

 找到用于静态编译的静态库

1  在linux下

2  库文件的地址:/usr/lib/下的 libc.a 库文件 

3  将 libc.a 文件复制到 /flair70/linux/bin/ 目录下

 

 用FLAIR解析器为该库创建一个pat文件

1  chmod 777 pelf    //赋予执行权限

2  chmod 777 libc.a    //赋予执行权限

3  ./pelf libc.a test.pat    //创建pat文件

4  可能会报错:Fatal [/home/chen/flair70/bin/linux/libc.a] (libc-start.o): Unknown relocation                            type 42 (offset in section=0x19f1).

5  解决办法:./pelf -r42:0:0 libc.a test.pat

 

 用sigmake来处理生成的pat文件,并生成一个签名文件

1  ./sigmake test.pat test.sig    //创建签名文件

2  可能会报错:test.sig: modules/leaves: 1685/1966, COLLISIONS: 8

See the  documentation  to learn how to resolve collisions.

3  解决办法:这个文件中出现了一堆的冲突函数的选项,在签名添加+或者-,或者什么也不添加,添加完以后,记得删除前面的 ";" 开头的四行,再次执行上面的命令,直到不产生报错

4  更改 test.exc 文件前,也要为其赋权

 

 将生成的签名文件复制到IDA的/sig/目录中

1  将生成的 test.sig 文件放在 ida 下的 sig 目录下

在IDA中shift+F5,选择添加sig文件进行解析

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值