问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/nishiwho/article/details/145811585

OpenBlt作为一款开源的引导加载程序,在嵌入式系统领域有着广泛的应用。本文将详细介绍如何使用IDA Pro 7.7版本对OpenBLT进行反编译分析,通过将hex文件转换为C语言代码,帮助读者深入了解其内部工作机制。

引言

OpenBlt 作为一款开源的引导加载程序,在嵌入式系统领域有着广泛的应用。对 OpenBLT 进行反汇编分析,不仅有助于我们深入理解其内部工作机制,还能为系统的安全评估、漏洞挖掘以及功能扩展提供有力支持。

IDA(Interactive Disassembler)作为一款强大的逆向工程工具,能够将二进制代码转换为汇编代码,并提供丰富的分析功能,是反汇编 OpenBLT 的理想选择。

这里选用 开源OpenBlt , 是可以通过反编译后的C 文件与源码对比,最后确定反编译的效果。

准备工作

IDA Pro

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

IDA sdk

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

待分析文件

分析使用的测试文件https://download.csdn.net/download/nishiwho/90420826
分析文件使随便找git上找的开源库。这里面提供了3个文件。
.hex 为 待分析的文件。
.lib 是编译的stm32的std库、openblt库生成的lib文件。
.sig 文件是使用 lib 文件生成的签名文件。

开始工作

sig 文件生成

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


# 生成 pat 文件
pelf.exe onstm32.lib onstm32.pat
# 生成 sig 文件
sigmake.exe onstm32.pat onstm32.sig  

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

反编译

1. 加载 hex 文件

使用STM32 Parser 插件处理后,按快捷键 Alt+F8 显示结果。

看到使用插件处理后,基本上矢量表函数能完全显示正常。

2. 加载签名并处理

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

结论

通过使用 IDA 对 OpenBLT 进行反汇编分析,我们可以深入了解其内部工作机制。在进行反汇编分析时,要遵守相关的法律法规和道德规范,确保分析工作的合法性和正当性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号