固件提取、毛刺注入、故障注入、MCU固件提取相关资料收集
中文资料
-
《免拆芯片提取固件》— 安全客
讲外置 Flash、MCU 内置 Flash、SWD/JTAG、OpenOCD、测试夹等固件提取思路,偏“常规硬件接口提取”。 -
《IoT安全研究:突破微控制器的固件保护》— 安全内参 / 绿盟研究通讯
讲 STM32F0 系列固件保护、RDP 读保护,以及研究人员如何突破保护并读取固件。 -
《在STM32F4微控制器上进行电压故障注入》— CTFIoT
讲 STM32F4、RDP 读保护、电压毛刺/故障注入,以及绕过读取保护提取固件的案例。 -
《渗透低性能智能设备的关键技术——固件提取》— 绿盟科技技术博客
偏固件提取基础,讲 Bootloader、SWD/JTAG、外置 Flash 读取、拆 Flash 等方式。 -
《芯片解密技术全解析——详说单片机破解》— 硬蛋创新
行业概述型文章,提到软件攻击、电子探测、过错产生、探针/FIB 等方向。 -
OSR / 纽创信安 TRIDENT 故障注入平台介绍
设备介绍,覆盖电压毛刺、电磁脉冲、时钟毛刺、激光故障注入等方向。
英文资料,更技术向
-
ChipWhisperer 官方文档 / GitHub
开源侧信道与故障注入工具链,适合系统学习硬件安全测试基础。 -
SEC Consult:Reproducible Voltage Glitching on STM32 Microcontrollers
讲 STM32 电压毛刺,目标包括跳过认证、读取开启读保护的控制器固件。 -
Anvil Secure:Glitching STM32 Read Out Protection
2025 年文章,讲用电压故障注入绕过 STM32 Read Out Protection。 -
Jerin Sunny:Voltage glitching on STM32F4 MCUs
原文副标题就是 “Bypassing Read Protection to extract firmware from STM32 Microcontrollers”。 -
Low-cost attacks on STM8 readout protection
讲 STM8 读保护绕过,作者目标是获取开启 readout protection 的 STM8 固件。 -
PT SWARM:GigaVulnerability: readout protection bypass on GigaDevice GD32 MCUs
讲 GD32 读保护绕过,适合了解 GD32/类 STM32 MCU 的保护缺陷研究。
按“文章中明确出现的工具/设备/软件/平台”统计,去重后大概可以分成这几类:
1. 常规固件提取 / 调试接口类
| 工具/设备 | 主要用途 | 出现情况 |
|---|---|---|
| flashrom | 读取/写入/识别 SPI Flash | 安全客文章明确用它配合 SPI 接口读取外置 Flash。 |
| SOP8/16 测试夹 | 免拆夹取 SPI Flash 引脚 | 安全客文章用于 SOP8/16 Flash 免拆读取。 |
| 芯片通用测试夹 / 测试钩子 | 夹取 QFP/SOP 引脚、接 SWD/JTAG | 安全客文章用于 MCU 内置 Flash 提取。 |
| ECU 探针 | 搭针读取或连接芯片引脚 | 安全客文章提到可用于汽车 ECU/其他芯片固件提取。 |
| CH341A 编程器 | SPI Flash 编程/读取 | 安全客文章列为可选编程器。 |
| 树莓派 / Linux SPI | 作为 SPI 主机读取 Flash | 安全客文章用树莓派演示 flashrom 读取。 |
| CJMCU FT232H / FT232H | USB 转 JTAG/SWD/UART/SPI/I2C | 安全客文章用于 SWD 连接 MCU,也列为 Flash 读取可选调试器。 |
| OpenOCD | 片上调试、SWD/JTAG、dump 内部 Flash | 安全客文章用 OpenOCD 连接 STM32 并导出固件。 |
| telnet | 连接 OpenOCD 控制端口 | 安全客文章用它和 OpenOCD 交互。 |
| GDB | 动态调试 | 安全客文章提到 OpenOCD 可配合 GDB 调试。 |
| J-Link / J-Link OB | SWD/JTAG 调试器 | 绿盟文章列为 SWD/JTAG 读取工具,GD32 文章也用 J-Link 尝试连接。 |
| ST-Link / ST-Link V2 / ST-Link Programmer | STM32 调试、烧录、配置保护位 | 绿盟、安全内参、CTFIoT/Anvil 都有出现。 |
| U-Link | MCU 调试/烧录工具 | 绿盟文章作为烧写环境工具提到。 |
| J-Flash | J-Link 配套 Flash 读写软件 | 绿盟文章提到 SWD/JTAG 可配合 J-Flash。 |
| STVP | ST 官方编程工具 | 绿盟文章提到可配合 ST-Link 使用。 |
| mcuisp | 串口 Bootloader 读写 Flash | 绿盟文章提到通过串口运行 mcuisp 读取 Flash。 |
| Flash 编程器 / 配套 PC 软件 | 拆下外置 Flash 后读取 | 绿盟文章提到片外 Flash 可放到编程器上读取。 |
2. 故障注入 / 毛刺攻击类
| 工具/设备 | 主要用途 | 出现情况 |
|---|---|---|
| ChipWhisperer / ChipWhisperer Pro / CW1173 ChipWhisperer-Lite | 电压毛刺、侧信道、触发控制 | SEC Consult、Anvil、ChipWhisperer 官方文档/仓库都明确出现。 |
| ChipWhisperer Python API | 用 Python 控制毛刺参数、触发、采集 | Anvil 文章明确使用。 |
| SECGlitcher | SEC Consult 基于 ChipWhisperer API 封装的毛刺脚本框架 | SEC Consult 文章的核心工具。 |
| TRIDENT 故障注入分析平台 | 商业化故障注入平台,覆盖电压、时钟、电磁、激光 | OSR/纽创信安产品页介绍。 |
| Teensy 开发板 | 控制毛刺软件和瞬变注入 | STM32F4 电压故障注入文章使用。 |
| 自制电压瞬变/毛刺注入电路 | 由电容、电阻、MOSFET 等组成,用于电源轨瞬变注入 | STM32F4/Jerin 文章明确使用。 |
| EPM240 CPLD 开发板 | 低成本、高精度时序控制毛刺 | STM8 文章使用。 |
| VHDL | 编写 CPLD/FPGA 逻辑 | STM8 文章中用于 CPLD 控制逻辑。 |
| RP2040 微控制器毛刺器 | 自制 glitcher,配合 MOSFET 做电源控制/毛刺脉冲 | PT SWARM 的 GD32 文章使用。 |
| MOSFET | 毛刺电路中的开关器件 | STM8/GD32/STM32F4 相关文章都出现。 |
| 示波器 / UT2052 / DSCope U3P100 | 观察毛刺波形、电源轨、功耗轨迹 | SEC、STM8、GD32 文章均使用或展示。 |
| 逻辑分析仪 | 测 UART/SWD/时序窗口 | Anvil 和 PT SWARM 文章使用。 |
| USB-UART TTL 转换器 / USB-to-serial | 与 STM32 Bootloader/UART 通信 | Anvil、STM8、STM32F4 文章出现。 |
| SPD3303X 电源 | 自动化断电/上电控制 | SEC Consult 脚本中出现。 |
3. 逆向分析 / 辅助分析工具
| 工具 | 主要用途 | 出现情况 |
|---|---|---|
| Ghidra | 反汇编/逆向 STM32 Bootloader | Anvil 文章明确提到把 Bootloader 加载进 Ghidra 分析。 |
| STM32Cube IDE | 编写/烧录 STM32 示例程序 | CTFIoT/Jerin 文章中用于准备测试固件。 |
| STM32CubeProgrammer | 配置 STM32 Option Bytes / RDP | CTFIoT/Jerin 文章中用于启用 RDP1。 |
| STM32SerialBootloader 库 | Python 中操作 STM32 串口 Bootloader | SEC Consult 脚本中出现。 |
| hexdump | 查看/处理导出的数据 | SEC Consult 脚本中出现。 |
| Python / python3 | 自动化毛刺、采集、控制设备 | Anvil、SEC、OSR 平台都提到 Python 控制或脚本。 |
| CSV / YAML 配置与结果文件 | 保存毛刺参数、聚合结果 | SECGlitcher 使用 YAML 保存参数范围、CSV 保存结果。 |
| X-ray imaging / X 光成像 | 观察封装内 QSPI/连线结构 | PT SWARM GD32 文章使用。 |
| Linux 驱动/自动化采集脚本 | 自动化读取示波器轨迹 | STM8 文章中作者为 UT2052 写 Linux 驱动。 |
4. 按出现频率粗略排序
| 高频工具 | 大致出现范围 |
|---|---|
| ST-Link / ST-Link V2 | 至少 4 篇:绿盟、安全内参、CTFIoT/Jerin、Anvil |
| J-Link / OpenOCD | 至少 3 篇:安全客、绿盟、PT SWARM |
| ChipWhisperer | 至少 3 类来源:官方文档/GitHub、SEC Consult、Anvil |
| USB-UART / 串口工具 | 至少 3 篇:绿盟、Anvil、STM8/STM32F4 |
| 示波器 | 至少 3 篇:SEC Consult、STM8、PT SWARM |
| 逻辑分析仪 | 至少 2 篇:Anvil、PT SWARM |
| flashrom | 主要出现在安全客“免拆芯片提取固件”文章 |
| mcuisp / J-Flash / STVP | 主要出现在绿盟固件提取基础文章 |
| SECGlitcher | 主要出现在 SEC Consult 文章 |
| TRIDENT | 主要出现在 OSR/纽创信安产品介绍 |
结论
这些资料里,工具链大致是:
常规固件读取路线:
测试夹/探针/编程器 + flashrom / OpenOCD / J-Flash / STVP / mcuisp + ST-Link / J-Link / FT232H / 树莓派 / CH341A
故障注入路线:
ChipWhisperer / SECGlitcher / Teensy / EPM240 CPLD / RP2040 / TRIDENT + 示波器 / 逻辑分析仪 / USB-UART + 自制毛刺电路
逆向分析路线:
Ghidra / Python / STM32CubeIDE / STM32CubeProgrammer / hexdump / X-ray imaging
重点写的工具是:ChipWhisperer、SECGlitcher、ST-Link、J-Link、OpenOCD、flashrom、FT232H、CH341A、USB-UART、示波器、逻辑分析仪、TRIDENT。