← 返回目录课程:《STM32F103固件逆向工程实战案例课程》
01

01 课程导论:STM32F103固件逆向工程目标、工具链与安全边界

明确固件逆向的工程目标、法律边界,搭建J-Link
章节导航 难度:入门类型:课程导论
能解决什么

把课程导论落到课程导论的触发条件、可观察状态和复查材料上,先判断问题从哪里收窄。

理解入口
接口配置流程状态日志
检查清单
学习路线能力边界术语框架实践入口
学习路线学习路径总览
01基础认知篇基础认知篇、课程导论、明确固件逆向的工程目与法律02核心机制篇核心机制篇、启动代码逆向、逆向复位处理函数与识别03工程实现篇工程实现篇、SPI与I2C总线协议逆向、定位SP04调试验证篇调试验证篇、固件中哈希算法定位、识别哈希算法初始05高级专题篇高级专题篇、固件中异常与错误处理、分析异常向量表06项目收束篇项目收束篇、固件中校验和与签名验、定位签名验证函课程学习路径阶段清晰 · 逐步推进

从一次固件升级失败说起:目标平台F103逆向工程的真实起点

常见偏差与修正动作

想象一个场景:你负责维护的工业控制器基于目标平台F103(ARM 处理平台3 微控制器),现场批量返厂,原因是固件升级后设备无法启动。原开发团队已解散,源码丢失,只有一份未加密的 .bin 文件。你需要在三天内定位故障根因,恢复产线。这正是固件逆向工程(Firmware Reverse Engineering)的典型战场——没有源码、没有文档、没有原开发团队,只有二进制文件和一把工具链

本节作为课程导论,不写空泛概念,直接回答三个问题:这门课解决什么具体问题?按什么路径学?学完能拿走什么能力? 同时,我们会在第一节课就搭建好J-Link / OpenOCD(调试探针与开源调试器)与Ghidra / IDA Pro(静态分析平台)的联合调试环境,并明确工程目标与法律边界,避免“逆向一时爽,合规火葬场”

实操步骤

拿到固件后,第一件事不是反汇编,而是用 目标平台 ST-LINK Utility 或 J-Flash 读取芯片的 Option Bytes,确认读保护(RDP)等级。RDP 等级 1 以上会阻止直接读取 Flash,此时需要先评估是否具备合法解锁授权

课程定位:从黑盒到灰盒的工程能力跃迁

本课程定位为工程实战型,面向嵌入式固件工程师、安全测试工程师和产品维护人员。核心目标不是教你“破解”,而是建立一套可复用的固件逆向工程实战案例(Firmware Reverse Engineering Practical Case)方法论。课程围绕三个能力层展开:

真实项目场景

某物联网网关设备使用 目标平台F103 作为主控,量产 5000 台后出现 3% 的随机死机。原厂只提供了固件补丁,但未说明修改内容。团队需要逆向分析补丁前后的差异,定位死机根因。本课程将演示如何通过 J-Link RTT 日志与 Ghidra 的版本对比功能,在 2 小时内锁定一个中断优先级配置错误

学习路径与能力成果:三阶段交付物

课程按“环境搭建→单点突破→综合实战”三阶段推进,每阶段都有明确的能力成果范围和可见交付物

关键摘要
阶段核心对象交付物判断标准
关键判断

不要试图“完全还原”固件。一个 64KB 的 目标平台F103 固件,反汇编后可能产生上万条指令。工程逆向的黄金法则是:带着问题分析,以最小代价回答核心问题。例如,定位死机原因时,优先分析中断向量表、异常处理函数和看门狗配置,而不是逐行阅读所有代码

学习路线预览

项目课开篇先梳理可接手主线:目标平台F103 Flash读取与固件Dump:SWD接口与读保护绕过对应工程入口,固件加载与入口点定位:处理平台3向量表与复位序列分析对应可运行材料,反汇编引擎配置与函数识别:Thumb/Thumb-2混合指令集处理对应后续验收或风险位置。后面使用讲义、结构图、清单或示例时,可以把案例、从一次固件升级失败说起和目标平台F103固件逆向工程目标放在同一张交付检查线上,判断成果能否被复现和接续开发。读者不必在开头完成实现,但要知道换到新设备、新数据或新约束时要确认对象边界、输入输出和证明材料,判断项目是否已经落地。