首先GD32 MCU本身支持防硬開(kāi)蓋破解的功能,GD32 MCU內(nèi)部Flash直接硬開(kāi)蓋破解讀取的數(shù)據(jù)無(wú)法在同型號(hào)的產(chǎn)品上運(yùn)行,因?yàn)镚D32 MCU內(nèi)部Flash物理地址和邏輯地址是隨機(jī)加密的,因而可以有效防止硬破解讀取代碼的可能,這是GD32 MCU本身支持的,無(wú)需使用者進(jìn)行配置;
可以設(shè)置讀保護(hù),GD32 MCU支持讀保護(hù)設(shè)置,有些MCU支持低保護(hù)等級(jí),設(shè)置讀保護(hù)后,通過(guò)ISP出廠BOOTLOADER或者SWD端口均無(wú)法讀取內(nèi)部Flash數(shù)據(jù),如果去除低保護(hù)等級(jí),芯片將會(huì)執(zhí)行全片擦除操作;有些MCU可以支持高保護(hù)等級(jí),高保護(hù)等級(jí)下ISP和SWD均無(wú)法讀取內(nèi)部Flash數(shù)據(jù),且高保護(hù)等級(jí)不可逆,相當(dāng)于內(nèi)部熔絲熔斷,因而具有較高的保護(hù)效果;
可以進(jìn)行軟件加密,比如讀取UID進(jìn)行加密,UID為96位全球唯一ID,相當(dāng)于芯片的身份證號(hào)碼,可以通過(guò)UID進(jìn)行芯片加密,下圖為一種簡(jiǎn)單的通過(guò)UID加密方法,芯片外部可以通過(guò)自定義加密算法生成密鑰,并將密鑰保存到芯片或者外部存儲(chǔ)中,MCU內(nèi)部上電運(yùn)行后,可以軟件讀取UID并通過(guò)加密算法計(jì)算當(dāng)前芯片對(duì)應(yīng)的密鑰,然后和存儲(chǔ)的密鑰進(jìn)行對(duì)比判斷,如果一致,就繼續(xù)運(yùn)行,如果不一致,可以擦除固件或者其他處理。
