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