我有一个剥离的elf文件,其中包含静态链接的库。有没有办法我可以提取文件中的原始库文件并命名IDA中与库中的函数匹配的函数?

#1 楼

您需要使用FLAIR工具包从静态库中创建FLIRT签名,然后将这些签名应用于加载的文件。请注意,这仅在二进制编译中使用了完全相同的库(例如,编译选项必须匹配)时才有效,因为FLIRT依赖字节匹配。有关FLIRT的更多信息,请参见https://www.hex-rays.com/products/ida/tech/flirt/in_depth.shtml

#2 楼

可能是这个ida pro插件可以帮助syms2elf
该插件将IDA Pro和radare2识别的符号(目前仅功能)导出到ELF符号表。这使我们能够利用IDA / r2的功能来识别功能(分析,FLIRT签名,手动创建,重命名等),但不仅限于此工具的独占使用。
支持32位和64位文件格式。
示例
基于完整的ELF:$ file test1_x86_stripped test1_x86_stripped: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped

https://github.com/danigargu/ida-syms2elf

edit
另一个插件wsym将符号添加到ELF文件。有点相反的地带。这处于开发的早期阶段,应被视为PoC / beta软件.https://github.com/wapiflapi/wsym

评论


这些仅适用于您在IDA中设置的内容吗?

–古德瑙
16年7月4日在22:03

@gudenau都使用IDA的识别功能,syms2elf使用ida pro识别功能(分析,FLIRT签名,手动创建,重命名)并输出新的未剥离的elf文件。 wsym还使用ida pro识别功能,获取IDA生成的输入.map文件,并输出新的未剥离的elf文件。(此插件处于开发的早期阶段)对不起英语不是我的母语

–阿德里安
2016年7月4日在23:37