1、背景
單片機(MCU)一般都有內部EEPROM/FLASH供用戶存放程序和工作數據。為了防止訪問或拷貝單片機的機內程序,大部分單片機都帶有加密鎖定位或者加密字節,以保護片內程序。如果在編程時加密鎖定位被使能(鎖定),就無法用普通的編程器直接讀取單片機內的程序,這就是所謂單片機加密或者說鎖定功能。事實上,這樣的保護措施很脆弱,很容易破解。
單片機攻擊者借助專用設備或自制設備,利用單片機芯片設計上的漏洞或軟件缺陷,通過多種技術手段,就可以從芯片提取關鍵信息,獲取單片機內程序。
2、解密方法
1)軟件方法:
主要針對SyncMos. Winbond等在生產工藝上的漏洞,利用某些編程器空位插字節,通過一定的方法查找芯片中是否有連續的空位,也就是查找芯片中連續的FF FF字節,插入的字節能夠執行把片內的程序送到片外的指令,然后用破解的設備進行截獲,這樣芯片內部的程序就被破解完成了。
2)硬件電路修改方法:其流程為a:測試使用高檔編程器等設備測試芯片是否正常,并把配置字保存。
注:配置字指的是在PIC等系列的單片機里,其芯片內部大都有設置一個特殊的存儲單元,地址是2007,由用戶自由配置,用來定義一些單片機功能電路單元的性能選項。
b:開蓋可以手工或開蓋機器開蓋。
c:做電路修改對不同芯片,提供對應的圖紙,讓廠家切割和連線,對每一個割線連線一般需要提供芯片位置概貌圖、具體位置圖、FIB示意圖三張圖紙(部分小的芯片只提供概貌圖和FIB圖)。
d:讀程序取回電路修改后的單片機,直接用編程器讀出程序。
e:燒寫樣片, 按照讀出的程序和配置,燒寫樣片提供給客戶。
這樣就結束了IC解密。
3)軟件和硬件結合的方法,比如對HOTEK,MDT等單片機破解。
3、芯片解密服務流程當客戶有芯片解密的需求后,可以通過聯系解密客戶服務廠家進行溝通、咨詢,提供詳細的需解密的芯片信號及后綴、封裝等相關特征。
廠家根據客戶提供的具體型號由技術部門進行評估,確認是否能破解,若能破解,廠家確認好所需的費用和解密的周期,客戶提供完好的母片并支付部分定金(對于某些芯片,可能還需要必要的測試環境),解密服務正式啟動。解密完成后,廠家提供給用戶1-2片樣片進行測試,若樣片測試通過,客戶結清項目余款,同時廠家通過郵件或郵寄光盤等方式提供客戶完整的解密程序文件。