首页
社区
课程
招聘
[原创]IDA 反编译openblt (实战:手搓 hex 文件变成 C语言)
发表于: 2025-2-24 19:45 13402

[原创]IDA 反编译openblt (实战:手搓 hex 文件变成 C语言)

2025-2-24 19:45
13402

OpenBlt 作为一款开源的引导加载程序,在嵌入式系统领域有着广泛的应用。对 OpenBLT 进行反汇编分析,不仅有助于我们深入理解其内部工作机制,还能为系统的安全评估、漏洞挖掘以及功能扩展提供有力支持。
IDA(Interactive Disassembler)作为一款强大的逆向工程工具,能够将二进制代码转换为汇编代码,并提供丰富的分析功能,是反汇编 OpenBLT 的理想选择。
这里选用 开源OpenBlt , 是可以通过反编译后的C 文件与源码对比,最后确定反编译的效果。

详细可参考之前文档,IDA 反汇编 STM32F1xx
本文使用的 IDA Pro 7.7 版本

需要用的对应IDA Pro版本的 IDA sdk ; 网上有很多版本,可自行搜下下载。

分析使用的测试文件 a6cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5k6h3y4K6k6r3&6Q4x3X3g2F1k6i4c8Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5c8X3&6A6M7$3S2A6N6$3S2G2i4K6u0r3z5e0l9@1x3U0l9^5x3U0j5`.
分析文件使随便找git上找的开源库。这里面提供了3个文件。
.hex 为 待分析的文件。
.lib 是编译的stm32的std库、openblt库生成的lib文件。
.sig 文件是使用 lib 文件生成的签名文件。

生成 sig 文件需要用到 IDA sdk 里的 flair 工具包。
flair工具包

lib 转 pat 文件基本直接能完成; pat 转 sig 文件,一般编译 .exc 文件, 根据文件提示,添加需要的函数,并删除前面4行即可。

把生成的 sig 文件 复制到 ida77\sig\arm 中
IDA 签名

hex加载后文件
使用 STM32 Parser 插件处理后,按快捷键 Alt+F8 显示结果。
使用插件后
看到使用插件处理后,基本上矢量表函数能完全显示正常。

选择 "视图" -> "打开子视图" -> “签名”, 或者直接 shift+F5; 弹出签名窗口,右键添加签名文件签名
在这里插入图片描述
在这里插入图片描述
加载sig 文件,点击 OK 即可。
查看加载签名后的文件,很多函数都能解析了。签名函数加载成功后显示
对比下,反编译后的成果和原始文件。
对比文件
现在基本能愉快的通过 IDA 查看相关的 C 函数 和 汇编函数 。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 165
支持
分享
最新回复 (95)
雪    币: 29
活跃值: (1533)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好东西
2025-2-24 19:57
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2025-2-24 20:01
0
雪    币: 8667
活跃值: (4716)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习学习
2025-2-24 21:05
0
雪    币: 8874
活跃值: (4213)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习一下
2025-2-25 15:26
0
雪    币: 11195
活跃值: (4182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你的帖子非常有用,感谢分享!
2025-2-25 15:56
0
雪    币: 60
活跃值: (170)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
多谢
2025-2-25 16:03
0
雪    币: 467
活跃值: (634)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢
2025-2-25 18:16
0
雪    币: 228
活跃值: (2506)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
历害
2025-2-25 18:36
0
雪    币: 3407
活跃值: (2406)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
tql
2025-2-25 20:11
0
雪    币: 12002
活跃值: (18849)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
一款强大的逆向工程工具
2025-2-25 22:07
0
雪    币:
活跃值: (150)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习
2025-2-26 08:18
0
雪    币: 1452
活跃值: (3736)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习
2025-2-26 08:25
0
雪    币: 41
活跃值: (1093)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习一下
2025-2-26 08:31
0
雪    币: 1051
活跃值: (3593)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
围观学习
2025-2-26 08:34
0
雪    币: 4322
活跃值: (2271)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个要好好学习一下
2025-2-26 08:42
0
雪    币: 417
活跃值: (208)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
围观学习
2025-2-26 09:13
0
雪    币: 145
活跃值: (1121)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
向高手学习
2025-2-26 09:13
0
雪    币: 9656
活跃值: (3441)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
感谢分享,学习一下
2025-2-26 09:58
0
雪    币: 9185
活跃值: (2622)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
谢谢分享
2025-2-26 10:24
0
雪    币: 3464
活跃值: (4924)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
你的帖子非常有用,感谢分享!
2025-2-26 10:30
0
雪    币: 2563
活跃值: (6066)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
二进制生成执行文件
2025-2-26 10:33
0
雪    币: 5164
活跃值: (4755)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
666
2025-2-26 10:37
0
雪    币: 144
活跃值: (708)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习一下
2025-2-26 10:54
1
雪    币: 195
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
学习一下
2025-2-26 11:28
0
游客
登录 | 注册 方可回帖
返回