[原创] 如何分析一个stripped ELF?这款IDA插件来帮忙
2022-12-1 00:4:0 Author: bbs.pediy.com(查看原文) 阅读量:10 收藏

[原创] 如何分析一个stripped ELF?这款IDA插件来帮忙

2022-12-1 00:04 4114

[原创] 如何分析一个stripped ELF?这款IDA插件来帮忙


这两天有闲心了就把去年写的几个脚本整合成了一个 IDA 插件,希望对在座各位有所帮助。

分析 IOT 样本时经常会遇见被剥离符号的样本文件,此时如果直接进行分析则非常困难,所以需要还原其函数来帮助我们进行分析。
这里放两张图对比使用插件前后,还原前甚至可以说是完全无法进行分析的:

SysNR-FuncFinder 这款 IDA 插件使用的方法是通过 Linux System Call Table 进行还原(此处不进行详细讲解了,大家可以自行搜索 system call 的相关文章)
简单来说是分析不同架构的汇编代码,然后使用 IDA Python 提取系统调用号,最后对应不同架构调用号的对应函数名进行 IDA 函数的重命名即可。

举例样本 8D5B7B806E35F6AE0BA02E9CAB4C3E5F,Linux 下使用 file 命令查看文件信息如下:

拖进 IDA 查看可以发现,完全没有可读函数:

使用编写的插件可以自动依照框架对系统调用函数进行重命名(version 1.0版本支持4种主流框架)所有通过 NR 调用的系统函数都能进行还原,此时再进行分析可以说是如鱼得水:

大家直接进github下载即可,有兴趣的也可以阅读一下代码。
Github 链接
PS:(IDA >=7.4 and python3)

[2022冬季班]《安卓高级研修班(网课)》月薪三万班招生中~

最新回复 (5)

雪    币: 871

活跃值: 活跃值 (1964)

能力值:

( LV3,RANK:25 )

在线值:

发帖

回帖

粉丝

Endali 活跃值 2022-12-1 09:52

2

0

感谢作者,但是7.5 python3 报了个错,module 'idc' has no attribute 'Dword'

雪    币: 935

活跃值: 活跃值 (633)

能力值:

( LV3,RANK:20 )

在线值:

发帖

回帖

粉丝

WPeace 活跃值 2022-12-1 10:45

3

0

测试多个 IDA7.5 无异常,请确认 IDA 使用的 python 版本也是 python3。

雪    币: 2861

活跃值: 活跃值 (1215)

能力值:

( LV2,RANK:10 )

在线值:

发帖

回帖

粉丝

mb_rjdrqvpa 活跃值 2022-12-1 13:14

4

0

WPeace 测试多个 IDA7.5 无异常,请确认 IDA 使用的 python 版本也是 python3。

2楼说的是对的,因为你的脚本api是旧版本的,api变动链接:https://hex-rays.com/products/ida/support/ida74_idapython_no_bc695_porting_guide.shtml
建议更新下api
你可以试下网上的ida7.7,跑你的插件一直报错

建议增加arm64支持

最后于 2022-12-1 16:49 被mb_rjdrqvpa编辑 ,原因:

雪    币: 935

活跃值: 活跃值 (633)

能力值:

( LV3,RANK:20 )

在线值:

发帖

回帖

粉丝

WPeace 活跃值 2022-12-1 14:34

5

0

mb_rjdrqvpa 2楼说的是对的,因为你的脚本api是旧版本的,api变动链接:https://hex-rays.com/products/ida/support/ida74_idapython_no_bc695_po ...

刚才测试了下7.7,知道原因了,之后会在github更新兼容。API更新我是知道的,但是因为插件调用的脚本是一年前写的,所以脚本里的有些API未更新。谢谢楼上的兄弟们!

雪    币: 935

活跃值: 活跃值 (633)

能力值:

( LV3,RANK:20 )

在线值:

发帖

回帖

粉丝

WPeace 活跃值 2022-12-1 15:42

6

0

已更新1.1版本,更新IDA API修复兼容性。
如有问题还原大家留言! : )

游客

登录 | 注册 方可回帖

返回


文章来源: https://bbs.pediy.com/thread-275366.htm
如有侵权请联系:admin#unsafe.sh