<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 測試測量 > 正文

簡(jiǎn)單分析一下MCU破解技術(shù)

發(fā)布時(shí)間:2017-12-26 責任編輯:lina

【導讀】MCU的安全等級正在逐步提升,一些公司甚至推出了安全主控,這是很好的現象,說(shuō)明大家越來(lái)越重視嵌入式領(lǐng)域的信息安全和程序安全了。但對于很多特殊行業(yè),比如消費類(lèi)電子產(chǎn)品,低成本的通訊模塊、電源控制模塊等等,迫于成本壓力以及更新?lián)Q代速度問(wèn)題,都無(wú)法使用更安全的主控MCU,有很大一部分產(chǎn)品甚至還在使用51單片機。


大家可能都知道破解51單片機是很容易的,但為什么容易,又是如何來(lái)破解的,可能很多人就不大清楚了,我在這里結合網(wǎng)上一些前輩整理的資料,和自己的經(jīng)驗,對MCU破解技術(shù)做個(gè)簡(jiǎn)單分析。


大家不要把解密想的很復雜,他不像研發(fā)一款產(chǎn)品那樣,先確定客戶(hù)需求或者新產(chǎn)品主要功能,然后立項確定技術(shù)指標,分配軟硬件開(kāi)發(fā)任務(wù),基于硬件調試程序,然后驗證功能,測試bug,還要做環(huán)境試驗。行業(yè)里解密的方法有很多,每個(gè)人破解的思路也不一樣。但是大致分為幾種。

1

軟件破解

利用軟件破解目標單片機的方法,利用這種方法,不會(huì )對目標MCU元器件造成物理?yè)p傷。主要是對WINBONGD,SYNCMOS單片機和GAL門(mén)陣列,這種利用軟件解密設備,按照一定的步驟操作,執行片內的程序送到片外的指令,然后用解密的設備進(jìn)行截獲,這樣芯片內部的程序就被解密完成了(GAL采用邏輯猜測),就可以得到加密單片機中的程序。

2

硬件破解

流程如下:

1、測試

使用高檔編程器等設備測試芯片是否正常,并把配置字保存。

2、開(kāi)蓋

采用手工或專(zhuān)用開(kāi)蓋設備進(jìn)行開(kāi)蓋處理,這里說(shuō)的開(kāi)蓋并不是說(shuō)單片機或者其他MCU真有一個(gè)蓋。簡(jiǎn)單解釋一下,MCU其實(shí)是一個(gè)大規模集成電路,它是由N個(gè)電路組合而成的,而晶圓就是搭載集成電路的載體。將晶圓進(jìn)行封裝后,就形成了我們日常所用的IC芯片,封裝形式可以有多種,比如TSSOP28、QFN28等,大家可以自己去百度搜索,這里不再復述。

3、做電路修改

對不同芯片,提供對應的圖紙,讓廠(chǎng)家做電路修改,目的是讓MCU的存儲區變得可讀。有些MCU默認不允許讀出Flash或者E2PROM中的數據,因為有硬件電路做保護,而一旦切斷加密連線(xiàn),程序就暴露可讀了。如圖2所示

4、讀程序

取回修改過(guò)的MCU,直接用編程器讀出程序,可以是HEX文件,或者BIN文件。

5、燒寫(xiě)樣片給客戶(hù)

按照讀出的程序和配置,燒寫(xiě)到目標MCU中,這樣就完成了MCU的破解。 至此,硬件破解法成功完成。

3

軟硬兼施

采用軟件和硬件結合的方法,需要對芯片的內部結構非常的熟悉。

另外還有其他一些破解技術(shù),例如電子探測攻擊、過(guò)錯產(chǎn)生技術(shù)等等,但是最終目的只有一個(gè),就是能夠模仿出目標MCU的功能就可以了。

看到這里大家應該明白一個(gè)道理,破解MCU并不能做到把MCU中的程序原封不動(dòng)的還原出來(lái)。目前的技術(shù)也做不到,至少?lài)鴥葢撟霾坏?。針對以上情況,加密芯片應運而生,初期確實(shí)能很好的保護MCU的安全,但很快就被找到了漏洞。

我舉個(gè)實(shí)際破解的例子分析一下,大家就能夠明白了。

加密原理:

MCU和加密芯片各存儲一條認證秘鑰,存儲同樣的加密算法;

MCU產(chǎn)生隨機數發(fā)給加密芯片,后者用秘鑰加密后將密文返回,此時(shí)MCU解密后,比對明文是否和生成的隨機數相等。如果相等,程序正常運行;如果不相等,出錯處理。

因為盜版商沒(méi)有這條秘鑰,加密芯片與MCU交互的數據又是隨機變化的,無(wú)法找到規律,所以只能把加密芯片的程序破解了,再復制一片加密芯片才能讓MCU的程序跑起來(lái)。而加密芯片不同于通用MCU,它內部有很多安全機制,破解難度非常大。

這種加密方案看似非常安全,但其實(shí)還是有漏洞的。

破解方法:

首先按照第二種破解方法,獲取到MCU的HEX文件。此處省略N步,不再復述。

使用軟件進(jìn)行HEX反編譯,反編譯軟件目前有很多。

在反編譯的程序中,找到對比點(diǎn),比如圖3所示,CJNE語(yǔ)句可能就是這個(gè)對比點(diǎn)。因此只要把箭頭2那行語(yǔ)句刪除,然后重新把匯編語(yǔ)言下載到MCU中,破解工作就完成了。此時(shí)即使沒(méi)有加密芯片,MCU也能正常運行了。

對MCU破解技術(shù)做個(gè)簡(jiǎn)單分析

其實(shí)原因很簡(jiǎn)單。MCU是要對加密芯片的返回值進(jìn)行判斷的,那么不讓他做判斷,這樣一來(lái)不管加密芯片返回值是什么,程序都能正常運行。

因此這種加密方案很快就被破解了。當然也不是這么絕對,因為有些MCU即使剖片也不能獲得里面的HEX或者BIN文件,所以這種破解方案也要看MCU的安全等級夠不夠高。但是足以說(shuō)明一個(gè)問(wèn)題,這種通過(guò)對比加密結果來(lái)實(shí)現加密的方案,安全等級還是不夠高,還是有破解漏洞的。

因為篇幅有限,本期只做解密技術(shù)的簡(jiǎn)單介紹。所謂知己知彼,百戰百勝,唯有了解了破解技術(shù),才能更有效的做加密防護。





推薦閱讀:
分享設計射頻電路電源的要點(diǎn)與經(jīng)驗 
深度解析電感的結構、分類(lèi)及特性 
采用面向低噪聲的運放進(jìn)行設計 
物聯(lián)網(wǎng)低功耗多協(xié)議網(wǎng)絡(luò )設計如何避免信號干擾? 

特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>