一、芯片特性:國產(chǎn)高性能 MCU 的代表
GD32F103RET6 作為兆易創(chuàng)新推出的32 位工業(yè)級微控制器,基于 ARM Cortex-M3 內(nèi)核,主頻高達108MHz,集成512KB Flash和64KB SRAM,支持CAN2.0B、USB FS、SDIO等豐富外設(shè),廣泛應(yīng)用于工業(yè)自動化、智能家居、新能源設(shè)備等領(lǐng)域。其 LQFP64 封裝設(shè)計兼顧性能與成本,成為國產(chǎn)替代 STM32F103 系列的熱門選擇。
 
 
二、加密機制:三重防護體系解析
1. 讀保護熔絲位(Read Protection)
燒寫0x1FFFF800 地址的保護位后,禁用SWD/JTAG 調(diào)試接口,防止直接讀取 Flash 代碼
鎖死后嘗試下載會觸發(fā)總線數(shù)據(jù)掩碼,返回全 FF 數(shù)據(jù)(實測某工業(yè)變頻器項目中,誤操作鎖死后 Keil 提示 “無法連接目標”)
2. 動態(tài)加密驗證
支持DES 算法和HASH 運算雙重驗證:
預存 8 字節(jié)密碼,通過隨機數(shù) + DES 運算生成校驗值
HASH 對比方式增加暴力破解難度(需遍歷2^64 種組合)
某智能儀表案例中,密鑰與RTC 時鐘綁定,每小時自動更新
3. 物理混淆策略
打磨芯片表面型號標識,掩蓋GD32F103RET6真實型號
部分版本采用A5 加密指令,指令流中插入冗余操作碼,干擾靜態(tài)反匯編
 
 
三、解密路徑:從軟件繞過到物理攻擊
方案 1:JFlash 調(diào)試器解鎖(非侵入式)
利用 GD32 與 STM32 的指令兼容性,通過 JFlash 工具操作:
選擇兼容型號:因 GD 型號不全,選擇STM32F103RET6(Flash 容量一致)
連接設(shè)置:
BOOT0 拉低,確保從系統(tǒng)存儲器啟動
短接復位電路,確保穩(wěn)定的 0.3ms 復位時序
執(zhí)行解鎖:
bash
JLink> connect
JLink> erase
JLink> mem 0x1FFFF800 10  # 驗證前兩字節(jié)為A5 5A即成功
 
成功率:約 70%(依賴芯片版本)
方案 2:差分功耗分析(DPA)
針對動態(tài)密鑰生成,搭建μA 級功耗監(jiān)測平臺:
捕獲密碼驗證瞬間的電流波動,發(fā)現(xiàn)功耗曲線與ADC 采樣值強相關(guān)
推導密鑰公式:
math
Key = (ADC_Value ^ RTC_Time) << (TEMP_Sensor >> 4)
 
編寫時序攻擊腳本,2 小時內(nèi)完成 10 萬次密鑰猜測
方案 3:物理修復熔絲位(侵入式)
針對深度鎖死芯片,采用聚焦離子束(FIB)技術(shù):
開封芯片,暴露晶圓表面
在 500 倍顯微鏡下定位熔絲位電路(位于 Flash 控制器左側(cè))
修復熔斷的多晶硅熔絲,恢復 SWD 接口讀寫權(quán)限
 
 
四、實戰(zhàn)案例:某工業(yè)伺服驅(qū)動器解密實錄
項目背景:客戶設(shè)備因升級失敗鎖死,需恢復電機控制算法和編碼器校準數(shù)據(jù)。
實施步驟:
電壓毛刺攻擊:在 SWCLK 線注入**±0.2V 脈沖**,觸發(fā)芯片進入測試模式
內(nèi)存鏡像:通過 JTAG 邊界掃描獲取未加密的SRAM 數(shù)據(jù)(0x20000000-0x20003FFF)
代碼重構(gòu):結(jié)合 DPA 分析和 FIB 修復,48 小時內(nèi)還原完整程序
 
 
 
維動智芯GD32F103解密方案
? 全場景支持:讀保護鎖死、動態(tài)加密、物理損傷芯片
? 獨家工具:JFlash兼容破解套件+功耗分析平臺
? 量產(chǎn)服務(wù):提供自動化解密工裝