恢复前的函数名
无法判断危险函数
flair工具描述
IDA中提供了一个东西做FLIRT:库文件快速识别与鉴定技术(Fast Library Identification and Recognition Technology),能通过一个静态链接库的签名文件,来快速识别被去符号的程序中的函数,从而为函数找到符号
在IDA的插件目录下有一个flair70.zip的压缩包,里面放着各个版本的FLAIR解析器,win的,mac的,linux的都有
恢复流程
-
找到用于静态编译的静态库
-
用FLAIR解析器为该库创建一个pat文件
-
用sigmake来处理生成的pat文件,并生成一个签名文件
-
将生成的签名文件复制到IDA的/sig/目录中
-
在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文件进行解析