要做DSP芯片破解,首先需要對芯片內(nèi)部結(jié)構(gòu)及其算法特征進(jìn)行深入分析和理解,這是專業(yè)ic芯片解密工程師的一項(xiàng)必修課,因?yàn)橹挥性诔浞掷斫庑酒瑑?nèi)部結(jié)構(gòu)和加解密特性的基礎(chǔ)上,才能為芯片選擇ZZ合理和安全可靠的破解方案。
結(jié)合在解密公司多年的工作經(jīng)驗(yàn),在這里為大家提供DSP芯片解密技術(shù)分析中對EEPROM編程算法的理解,供大家參考。(注:以DSPIC30F系列芯片破解為例)
EEPROM算法破解芯片步驟:
一、數(shù)據(jù)EEPROM編程
EEPROM存儲塊(block)與程序存儲器類似,是通過讀表和寫表操作訪問的。因?yàn)镋EPROM存儲器只有16位寬,所以其操作不需要使用TBLWTH和TBLRDH指令。數(shù)據(jù)EEPROM的編程和擦除步驟與閃存程序存儲器類似,區(qū)別在于數(shù)據(jù)EEPROM為快速數(shù)據(jù)存取進(jìn)行了優(yōu)化。在數(shù)據(jù)EEPROM上可以執(zhí)行以下編程操作:
編程一個字
編程一行(16個字)
擦除一個字
擦除一行(16個字)
在正常操作中(整個VDD工作范圍),數(shù)據(jù)EEPROM可讀寫。與閃存程序存儲器不同,在EEPROM編程或擦除操作時(shí),正常程序執(zhí)行不會停止。EEPROM擦除和編程操作是通過NVMCON和NVMKEY寄存器執(zhí)行的。編程軟件負(fù)責(zé)等待操作完成。軟件可以使用以下三種方法之一檢測EEPROM擦除或編程操作的完成時(shí)間:
用軟件查詢NVMIF位(IFS0 12 )。當(dāng)操作完成時(shí)NVMIF位會被置1。
用軟件查詢WR位(NVMCON 15 )。當(dāng)操作完成時(shí)WR位會被清零。
允許NVM中斷。當(dāng)操作完成時(shí),CPU會被中斷。ISR可以處理更多的編程操作。
注:當(dāng)編程或擦除操作執(zhí)行過程中,如果用戶試圖讀取EEPROM,會得到不可預(yù)料的結(jié)果。
二、EEPROM單字編程算法
1.擦除一個EEPROM字。
設(shè)置NVMCON寄存器以擦除一個EEPROM字。
將要擦除的字的地址寫入TBLPAG和NVMADR寄存器。
將NVMIF狀態(tài)位清零并允許NVM中斷(可選)。
將密鑰序列寫入NVMKEY。
將WR位置1。這將開始擦除周期。
查詢WR位或等待NVM中斷。
2.將數(shù)據(jù)字寫入數(shù)據(jù)EEPROM寫鎖存器。
3.將數(shù)據(jù)字編程入EEPROM。
設(shè)置NVMCON寄存器以編程一個EEPROM字。
將NVMIF狀態(tài)位清零并允許NVM中斷(可選)。
將密鑰序列寫入NVMKEY。
將WR位置1。這將開始編程周期。
查詢WR位或等待NVM中斷。
三、EEPROM行編程算法
如果需要將多個字編程入EEPROM,每次擦除并編程16個字(1行)會比較快。向EEPROM編程16個字的過程如下:
1.讀一行數(shù)據(jù)EEPROM(16個字)并以數(shù)據(jù)“鏡像”方式保存到數(shù)據(jù)RAM。要修改的EEPROM部分必須處于偶數(shù)16字地址邊界內(nèi)。
2.使用新數(shù)據(jù)更新數(shù)據(jù)鏡像。
3.擦除EEPROM行。
設(shè)置NVMCON寄存器以擦除EEPROM的一行。
將NVMIF狀態(tài)位清零并允許NVM中斷(可選)。
將密鑰序列寫入NVMKEY。
將WR位置1。這將開始擦除周期。
查詢WR位或等待NVM中斷。
4.將16個數(shù)據(jù)字寫入數(shù)據(jù)EEPROM寫鎖存器。
5.將一行數(shù)據(jù)編程到數(shù)據(jù)EEPROM。
設(shè)置NVMCON寄存器以編程EEPROM的一行。
將NVMIF狀態(tài)位清零并允許NVM中斷(可選)。
將密鑰序列寫入NVMKEY。
將WR位置1。這將開始編程周期。
查詢WR位或等待NVM中斷。
以上就是dsp芯片破解的一種算法EEPROM的詳細(xì)教程,你學(xué)會了嗎? 2018-05-02 2417次