一、芯片特性:国产高性能 MCU 的代表
GD32F103RET6 作为兆易创新推出的32 位工业级微控制器,基于 ARM Cortex-M3 内核,主频高达108MHz,集成512KB Flash和64KB SRAM,支持CAN2.0B、USB FS、SDIO等丰富外设,广泛应用于工业自动化、智能家居、新能源设备等领域。其 LQFP64 封装设计兼顾性能与成本,成为国产替代 STM32F103 系列的热门选择。
二、加密机制:三重防护体系解析
1. 读保护熔丝位(Read Protection)
烧写0x1FFFF800 地址的保护位后,禁用SWD/JTAG 调试接口,防止直接读取 Flash 代码
锁死后尝试下载会触发总线数据掩码,返回全 FF 数据(实测某工业变频器项目中,误操作锁死后 Keil 提示 “无法连接目标”)
2. 动态加密验证
支持DES 算法和HASH 运算双重验证:
预存 8 字节密码,通过随机数 + DES 运算生成校验值
HASH 对比方式增加暴力破解难度(需遍历2^64 种组合)
某智能仪表案例中,密钥与RTC 时钟绑定,每小时自动更新
3. 物理混淆策略
打磨芯片表面型号标识,掩盖GD32F103RET6真实型号
部分版本采用A5 加密指令,指令流中插入冗余操作码,干扰静态反汇编
三、解密路径:从软件绕过到物理攻击
方案 1:JFlash 调试器解锁(非侵入式)
利用 GD32 与 STM32 的指令兼容性,通过 JFlash 工具操作:
选择兼容型号:因 GD 型号不全,选择STM32F103RET6(Flash 容量一致)
连接设置:
BOOT0 拉低,确保从系统存储器启动
短接复位电路,确保稳定的 0.3ms 复位时序
执行解锁:
bash
JLink> connect
JLink> erase
JLink> mem 0x1FFFF800 10 # 验证前两字节为A5 5A即成功
成功率:约 70%(依赖芯片版本)
方案 2:差分功耗分析(DPA)
针对动态密钥生成,搭建μA 级功耗监测平台:
捕获密码验证瞬间的电流波动,发现功耗曲线与ADC 采样值强相关
推导密钥公式:
math
Key = (ADC_Value ^ RTC_Time) << (TEMP_Sensor >> 4)
编写时序攻击脚本,2 小时内完成 10 万次密钥猜测
方案 3:物理修复熔丝位(侵入式)
针对深度锁死芯片,采用聚焦离子束(FIB)技术:
开封芯片,暴露晶圆表面
在 500 倍显微镜下定位熔丝位电路(位于 Flash 控制器左侧)
修复熔断的多晶硅熔丝,恢复 SWD 接口读写权限
四、实战案例:某工业伺服驱动器解密实录
项目背景:客户设备因升级失败锁死,需恢复电机控制算法和编码器校准数据。
实施步骤:
电压毛刺攻击:在 SWCLK 线注入**±0.2V 脉冲**,触发芯片进入测试模式
内存镜像:通过 JTAG 边界扫描获取未加密的SRAM 数据(0x20000000-0x20003FFF)
代码重构:结合 DPA 分析和 FIB 修复,48 小时内还原完整程序
维动智芯GD32F103解密方案
✅ 全场景支持:读保护锁死、动态加密、物理损伤芯片
✅ 独家工具:JFlash兼容破解套件+功耗分析平台
✅ 量产服务:提供自动化解密工装