我們多年來(lái)一直專注加密芯片功能的設(shè)計(jì)和軟件算法的研究、算法的軟件實(shí)現(xiàn),如:des加密、對(duì)稱加密、md5加密等加解密算法的研究,及其硬件功能的實(shí)現(xiàn)、系統(tǒng)軟件的開(kāi)發(fā)和芯片底層驅(qū)動(dòng)的設(shè)計(jì),在MCU/CPLD/SPLD/PLD芯片解密技術(shù)的領(lǐng)域積累了豐富的開(kāi)發(fā)經(jīng)驗(yàn)。耐斯迪科技專業(yè)領(lǐng)跑行業(yè)多年,在MCU/CPLD/SPLD/PLD芯片解密技術(shù)的領(lǐng)域積累了豐富的開(kāi)發(fā)經(jīng)驗(yàn),是行業(yè)公認(rèn)的權(quán)威企業(yè)。
此前應(yīng)客戶要求,我公司對(duì)某款電控箱進(jìn)行了反向開(kāi)發(fā),其中有一顆DSPIC30F3011帶軟加密的單片機(jī),經(jīng)過(guò)一段時(shí)間的技術(shù)攻關(guān),我公司順利破解,歡迎有類似需求的客戶與我們聯(lián)系,我們將竭誠(chéng)為您提供最專業(yè)的技術(shù)服務(wù)。
要寫(xiě)EEPROM 數(shù)據(jù)存儲(chǔ)單元,必須按照下列順序進(jìn)行:
1. 擦除數(shù)據(jù)EEPROM 的字。
a) 在NVMCON 寄存器中,選擇字擦除數(shù)據(jù)EEPROM,并置1 WREN 位。
b) 把要擦除的字的地址寫(xiě)入NVMADR。
c) 允許NVM 中斷(可選)。
d) 把“55”寫(xiě)入NVMKEY。
e) 把“AA”寫(xiě)入NVMKEY。
f) 置1 WR 位。這將開(kāi)始擦除周期。
g) 查詢NVMIF 位或等待NVMIF 中斷。
h) 當(dāng)擦除周期結(jié)束時(shí)WR 位會(huì)被清零。
2. 把數(shù)據(jù)字寫(xiě)入數(shù)據(jù)EEPROM 的寫(xiě)鎖存器中。
3. 把1 個(gè)數(shù)據(jù)字編程到數(shù)據(jù)EEPROM 中。
a) 在NVMCON 寄存器中,選擇字編程數(shù)據(jù)EEPROM,并置1 WREN 位。
b) 允許NVM 寫(xiě)完成中斷(可選)。
c) 把“55”寫(xiě)入NVMKEY。
d) 把“AA”寫(xiě)入NVMKEY。
e) 置1 WR 位。這將開(kāi)始編程周期。
f) 查詢NVMIF 位,或者等待NVM 中斷。
g) 當(dāng)寫(xiě)周期結(jié)束時(shí)WR 位會(huì)被清零。
此外,必須置1 NVMCON 中的WREN 位來(lái)使能寫(xiě)操作。這樣的機(jī)制,防止由于不可預(yù)料的代碼執(zhí)行而意外地寫(xiě)數(shù)據(jù)EEPROM。除非在更新EEPROM 時(shí),否則WREN位應(yīng)該始終保持清零。硬件不能清零WREN位。在寫(xiě)過(guò)程啟動(dòng)之后,清零WREN 位將不會(huì)影響當(dāng)前的寫(xiě)周期。禁止把WR 位置1,除非WREN 位已置1。必須在前一條指令中置1 WREN 位。不能在同一條指令中置1 WR 和WREN 位。
對(duì)于每個(gè)字,如果上述序列(把0x55 寫(xiě)入NVMKEY,把0xAA 寫(xiě)入NVMCON,然后置1 WR 位)沒(méi)有嚴(yán)格遵守的話,寫(xiě)操作不會(huì)啟動(dòng)。 芯片解密強(qiáng)烈建議在這段代碼執(zhí)行期間,禁止中斷。