OpenBlt 作为一款开源的引导加载程序,在嵌入式系统领域有着广泛的应用。对 OpenBLT 进行反汇编分析,不仅有助于我们深入理解其内部工作机制,还能为系统的安全评估、漏洞挖掘以及功能扩展提供有力支持。
IDA(Interactive Disassembler)作为一款强大的逆向工程工具,能够将二进制代码转换为汇编代码,并提供丰富的分析功能,是反汇编 OpenBLT 的理想选择。
这里选用 开源OpenBlt , 是可以通过反编译后的C 文件与源码对比,最后确定反编译的效果。
详细可参考之前文档,IDA 反汇编 STM32F1xx
本文使用的 IDA Pro 7.7 版本
需要用的对应IDA Pro版本的 IDA sdk ; 网上有很多版本,可自行搜下下载。
分析使用的测试文件 0b3K9s2c8@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 工具包。

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


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

看到使用插件处理后,基本上矢量表函数能完全显示正常。
选择 "视图" -> "打开子视图" -> “签名”, 或者直接 shift+F5; 弹出签名窗口,右键添加签名文件


加载sig 文件,点击 OK 即可。
查看加载签名后的文件,很多函数都能解析了。
对比下,反编译后的成果和原始文件。

现在基本能愉快的通过 IDA 查看相关的 C 函数 和 汇编函数 。
[招生]科锐逆向工程师培训(2026年11月13日实地,远程教学同时开班, 第57期)