不同ROM解密方法比較及掩膜ROM解密步驟
ROM是隻讀存儲器(qì),數(shù)據事先寫入,隻能讀出,不會(huì)因為(wèi)電(diàn)源關閉而消失。這類似于電(diàn)腦(nǎo)的硬盤,一般用來(lái)存儲MCU的各項程序,以完成MCU的各項操作(zuò)。ROM的類型有(yǒu)很(hěn)多(duō)種:Mask ROM是在芯片生(shēng)産過程中,增加一塊Mask和(hé)若幹道(dào)加工工序,将數(shù)據固化在芯片上(shàng);OTP ROM、EEPROM和(hé)Flash ROM是在芯片中放入相應的可(kě)編程單元,讓客戶對這些(xiē)單元進行(xíng)編程,自行(xíng)将需要固化的程序寫到芯片中。其中OTP隻能編程一次,而EEPROM和(hé)Flash可(kě)以反複編程。
EEPROM和(hé)Flash,存儲單元中所存儲的數(shù)據是0還(hái)是1,是完全由存儲單元的電(diàn)學性能決定的。這樣,要讀出其中的數(shù)據,就隻能通(tōng)過電(diàn)學的方法。當前的不少(shǎo)芯片,都設計(jì)有(yǒu)加密功能,在芯片數(shù)據寫入之後,可(kě)以通(tōng)過加密使得(de)數(shù)據無法讀出。要想得(de)到已加密芯片內(nèi)部存儲的數(shù)據,需要對芯片進行(xíng)反向分析,弄清楚芯片的加密原理(lǐ),再針對性的對芯片做(zuò)相應的解密操作(zuò),去除芯片的加密功能,然後讀出其中數(shù)據。
Mask ROM,是在芯片加工過程中一次性固化需存儲的數(shù)據,無需從芯片外部寫入數(shù)據,因此一般沒有(yǒu)數(shù)據讀出通(tōng)道(dào)。但(dàn)芯片加工過程中寫入了0/1數(shù)據,必然會(huì)在芯片內(nèi)部留下物理(lǐ)痕迹,這樣就能通(tōng)過反向分析的方法,從這些(xiē)物理(lǐ)痕迹入手,将芯片內(nèi)部存儲的數(shù)據讀出。
OTP ROM,利用電(diàn)信号編程,在芯片內(nèi)部一次性的改變某些(xiē)器(qì)件的電(diàn)學性能,從而存儲數(shù)據。之所以是一次性,是因為(wèi)電(diàn)學性能的改變是不可(kě)逆的,大(dà)部分都是破壞性的,比如燒斷熔絲等。這樣的寫入操作(zuò)同樣會(huì)在芯片內(nèi)部留下物理(lǐ)痕迹,這也為(wèi)反向分析獲取內(nèi)部碼點提供了可(kě)能。
Mask ROM解密步驟
1、查找MCU說明(míng)書(shū),了解芯片的整體(tǐ)結構、運算(suàn)邏輯單元(ALU)各項功能、數(shù)據總線及結構、存儲器(qì)相關部分特點(不僅包括ROM,還(hái)包括RAM和(hé)各通(tōng)用寄存器(qì))等硬件相關信息同時(shí)熟悉MCU的指令集等軟件相關信息。了解MCU的IO接口及應用特點。當然獲取碼點容量信息是必須的。
2、将樣片開(kāi)蓋,獲取芯片面積、線寬、層數(shù),ROM面積、ROM類型等基本信息,通(tōng)過各種實驗手段獲得(de)芯片工藝特點。
3、将樣片去層,獲得(de)ROM區(qū)域以及外圍相關電(diàn)路(包括譯碼電(diàn)路和(hé)與之相關的數(shù)字電(diàn)路)的各層顯微相片,并完成圖片拼接。
4、将樣片碼點染色,獲得(de)碼點區(qū)域染色後的顯微相片,并完成圖片拼接。
5、提取碼點,得(de)到二維平面陣列碼點。
6、分析ROM外圍譯碼電(diàn)路及與之相關的數(shù)字電(diàn)路,得(de)到碼點順序。
7、依據碼點順序對平面陣列碼點進行(xíng)重構,得(de)到二進制(zhì)文件。