记一次对STM32F103固件的提取与逆向分析"

admin 2026-10-20 06:54:02 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

记一次对STM32F103固件的提取与逆向分析

原创

Shelter1234
Shelter1234

安全研究员

2026年7月11日 21:01
浙江

在小说阅读器读本章

去阅读

事情还要从即将毕业的一场面试说起,当时面试官是 某IoT 安全实验室的负责人,他抛出一个问题,问我怎么把STM32烧录进去的代码提取出来,由于当时经验尚浅,只回答了应该可以。而今大模型智能体技术的日趋成熟大幅抹平了各类技术门槛,加上我也想温习下嵌入式的基础知识(虽然从事的是安全,但对嵌入式行业依旧看好),所以有了这篇文章对技术进行下总结。

本次 我将带领大家从无开始,买一个STM32C8T6的板子进行程序的烧录,感受下正向开发,之后在进行代码的提取进行逆向分析。

物件准备

首先需要一个板子,作者也是选择了一个对初学者特别优好的板子C8T6,CH340X是进行烧录辅助用的,用杜邦线进行接线,使用串口下载助手便可以完成代码烧写。

1.STM32F103C8T6/C6T6核心开发板单片机学习板模块 CH32/GD32系统板

2.STM32/ESP32/ESP8266串口自动程序下载烧录器CH340X USB转TTL串口

3.杜邦线

收到货,不要忘了向店家要下开发板的基础资料,里面可是含一个简单的测试程序,让小灯闪烁。

接线烧录器

我们没有ST-Link 这种方便的调试器,故使用串口协议的CH340X,下面是接线参考

CH340X 模块引脚 连接 -> 你的开发板引脚 说明
TXD (或 TX) ➡️ 板子的 RXD (或 RX / PA10) 发送接接收
RXD (或 RX) ➡️ 板子的 TXD (或 TX / PA9) 接收接发送
GND ➡️ 板子的 GND 共地
3.3V (或 VCC) ➡️ 板子的 3V3 (可以接在 SWD 的 VCC3V3 上) 给板子供电(如果板子有其他电源供电,此线可不接,但GND必须接)

那么怎么判断自己接线无误呢,将数据线与电脑连接,观察是否有com的出现,

程序烧录

是用keil4 打开测试程序编译一下

生成hex文件

之后用串口编程软件myMcu (作者也是在网上随便下了一个) 烧录程序

烧录时候注意下细节

一,选择程序文件project.hex port口选择com3 ,波特率默认的115200就行

二,还需要调整 BOOT 跳线帽(进入下载模式)

  1. BOOT0:跳线帽插在靠近 1(或 3.3V)的那一侧。
  2. BOOT1:跳线帽插在靠近 0(或 GND)的那一侧。 (注意:烧录完成后,如果要让程序运行,需要把 BOOT0 还原插回 0 侧)

三,准备好后按以下顺序操作:

  1. 鼠标点击 FlyMcu 软件上的 “开始编程(P)”。
  2. 此时软件右侧会显示 开始连接...。
  3. 立刻按一下 STM32 核心板上的 黑色/蓝色复位按键(RESET),然后松开。
  4. 此时软件就会检测到芯片,右侧会显示芯片信息(如 Flash 容量等)并开始百分比下载。

这样就烧录成功了,把BOOT0 置回为0 复位一下就可以看到pc13小灯的闪烁了

提取Flash

无意看到这个软件有读取flash的功能,但不能用蛤,需要与作者联系,那我们就使用开源命令行工具 stm32flash 来进行后面的操作吧,首先还是要将com调整到下载模式,之后运行程序

.\stm32flash.exe -r backup.bin COM3

直接运行报错了

报错的原因,ai的诊断是

我们使用ai给出的解决方案再次运行

.\stm32flash.exe -r backup\_new.bin -S 0x08000000:0x10000 -i rts,-dtr,,-rts,dtr COM3

这样我们就成功拿到了这个程序的固件

固件分析

代码的逆向分析,这里我不想介绍太多看似复杂实则一点也不简单的重量级反汇编工具软件。我们直接交给智能体让他分析。

大模型还是很给力的,很快就识别出了这个固件是STM32的格式

在得知本地没有现成的编译工具后,大模型主动选择了Capstone库——python的扩展库,进行反汇编操作。接下来就全交给模型来反汇编分析吧。

最终大模型出色地完成了本次的反编译分析任务

对比下这段为核心逻辑的伪代码和源程序对比还是非常符合的、

写在最后

本次带领了大家走完了一遍从嵌入式开发以及固件的逆向分析的一般流程,希望能够给从事嵌入式行业以及安全行业的人员带来一些启示。最后我还想对说,固件的提取和逆向分析并为那么顺利的,因为这个问题正向开发肯定是考虑到了,从而有一套加解密验证的解决方案,来阻止你对固件的提取和逆向分析,但也不是加了密就一定的安全。两者属于对抗关系 相辅相成吧。


记一次对STM32F103固件的提取与逆向分析" 网络安全文章

记一次对STM32F103固件的提取与逆向分析"

本文记录了对STM32F103固件的提取与逆向分析全过程。作者从购买开发板开始,通过串口烧录程序,使用stm32flash工具提取Flash固件,并借助大模型和Capstone库进行反汇编分析。文章展示了嵌入式安全研究的基本流程,并指出固件加密与破解的对抗关系,为相关从业者提供了实战参考。
关注|海光亮相光合组织大会,首次展现“云边端”完整算力体系" 网络安全文章

关注|海光亮相光合组织大会,首次展现“云边端”完整算力体系"

海光信息在光合组织2026智能计算应用大会上首次展示云边端完整算力体系,覆盖数据中心、边缘计算和端侧全场景AI计算布局。DCU软件栈的完善使国产AI算力从可用走向好用,已适配多款主流大模型。同时布局嵌入式原生AI,拓展工业、能源等场景应用。中国首个全国产十万卡AI超集群曙光8000落成,验证了海光芯片支撑大规模AI应用的能力。
前沿|构建“体系化、流程化、智能化”网络安全运营新范式" 网络安全文章

前沿|构建“体系化、流程化、智能化”网络安全运营新范式"

本文介绍某信息基础设施运营单位构建的体系化、流程化、智能化网络安全运营新范式。通过协同化组织架构、纵深化技术架构和常态化管理准备实现体系化建设;采用PDCA循环的规范化应急响应流程,以钓鱼邮件和主机异常外联事件为例展示处置效果;深度应用态势感知平台作为智能中枢,实现秒级自动封禁。实战演练累计拦截攻击3万余次,处置安全事件150起,有效保障了关键信息系统安全。该模式为提升网络安全防御质效提供了可复用的实践路径。
关注|《智能网联汽车组合驾驶辅助系统安全要求》强制性国家标准正式发布" 网络安全文章

关注|《智能网联汽车组合驾驶辅助系统安全要求》强制性国家标准正式发布"

工信部发布《智能网联汽车组合驾驶辅助系统安全要求》强制性国家标准(GB47955-2026),拟于2027年1月1日实施。该标准针对基础单车道、基础多车道、领航驾驶辅助三类系统提出安全要求,涵盖功能、数据记录、人机交互等维度,并构建多层级评价方法。与联合国UNR171法规相比,更契合中国复杂交通环境,对提升智能网联汽车安全水平、保障产业健康发展具有重要意义。
评论:0   参与:  0