簡單分析一下MCU破解技術
發布時間:2017-12-26 責任編輯:lina
大家可能都知道破解51單(dan)片(pian)機(ji)是(shi)很(hen)容(rong)易(yi)的(de),但(dan)為(wei)什(shen)麼(me)容(rong)易(yi),又(you)是(shi)如(ru)何(he)來(lai)破(po)解(jie)的(de),可(ke)能(neng)很(hen)多(duo)人(ren)就(jiu)不(bu)大(da)清(qing)楚(chu)了(le),我(wo)在(zai)這(zhe)裏(li)結(jie)合(he)網(wang)上(shang)一(yi)些(xie)前(qian)輩(bei)整(zheng)理(li)的(de)資(zi)料(liao),和(he)自(zi)己(ji)的(de)經(jing)驗(yan),對(dui)MCU破解技術做個簡單分析。

大(da)家(jia)不(bu)要(yao)把(ba)解(jie)密(mi)想(xiang)的(de)很(hen)複(fu)雜(za),他(ta)不(bu)像(xiang)研(yan)發(fa)一(yi)款(kuan)產(chan)品(pin)那(na)樣(yang),先(xian)確(que)定(ding)客(ke)戶(hu)需(xu)求(qiu)或(huo)者(zhe)新(xin)產(chan)品(pin)主(zhu)要(yao)功(gong)能(neng),然(ran)後(hou)立(li)項(xiang)確(que)定(ding)技(ji)術(shu)指(zhi)標(biao),分(fen)配(pei)軟(ruan)硬(ying)件(jian)開(kai)發(fa)任(ren)務(wu),基(ji)於(yu)硬(ying)件(jian)調(tiao)試(shi)程(cheng)序(xu),然(ran)後(hou)驗(yan)證(zheng)功(gong)能(neng),測(ce)試(shi)bug,還要做環境試驗。行業裏解密的方法有很多,每個人破解的思路也不一樣。但是大致分為幾種。
1
軟件破解
利用軟件破解目標單片機的方法,利用這種方法,不會對目標MCU元器件造成物理損傷。主要是對WINBONGD,SYNCMOS單片機和GAL門(men)陣(zhen)列(lie),這(zhe)種(zhong)利(li)用(yong)軟(ruan)件(jian)解(jie)密(mi)設(she)備(bei),按(an)照(zhao)一(yi)定(ding)的(de)步(bu)驟(zhou)操(cao)作(zuo),執(zhi)行(xing)片(pian)內(nei)的(de)程(cheng)序(xu)送(song)到(dao)片(pian)外(wai)的(de)指(zhi)令(ling),然(ran)後(hou)用(yong)解(jie)密(mi)的(de)設(she)備(bei)進(jin)行(xing)截(jie)獲(huo),這(zhe)樣(yang)芯(xin)片(pian)內(nei)部(bu)的(de)程(cheng)序(xu)就(jiu)被(bei)解(jie)密(mi)完(wan)成(cheng)了(le)(GAL采用邏輯猜測),就可以得到加密單片機中的程序。
2
硬件破解
流程如下:
1、測試
使用高檔編程器等設備測試芯片是否正常,並把配置字保存。
2、開蓋
采用手工或專用開蓋設備進行開蓋處理,這裏說的開蓋並不是說單片機或者其他MCU真有一個蓋。簡單解釋一下,MCU其實是一個大規模集成電路,它是由N個電路組合而成的,而晶圓就是搭載集成電路的載體。將晶圓進行封裝後,就形成了我們日常所用的IC芯片,封裝形式可以有多種,比如TSSOP28、QFN28等,大家可以自己去百度搜索,這裏不再複述。

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

4、讀程序
取回修改過的MCU,直接用編程器讀出程序,可以是HEX文件,或者BIN文件。
5、燒寫樣片給客戶
按照讀出的程序和配置,燒寫到目標MCU中,這樣就完成了MCU的破解。 至此,硬件破解法成功完成。
3
軟硬兼施
采用軟件和硬件結合的方法,需要對芯片的內部結構非常的熟悉。
另外還有其他一些破解技術,例如電子探測攻擊、過錯產生技術等等,但是最終目的隻有一個,就是能夠模仿出目標MCU的功能就可以了。
看到這裏大家應該明白一個道理,破解MCU並不能做到把MCU中(zhong)的(de)程(cheng)序(xu)原(yuan)封(feng)不(bu)動(dong)的(de)還(hai)原(yuan)出(chu)來(lai)。目(mu)前(qian)的(de)技(ji)術(shu)也(ye)做(zuo)不(bu)到(dao),至(zhi)少(shao)國(guo)內(nei)應(ying)該(gai)做(zuo)不(bu)到(dao)。針(zhen)對(dui)以(yi)上(shang)情(qing)況(kuang),加(jia)密(mi)芯(xin)片(pian)應(ying)運(yun)而(er)生(sheng),初(chu)期(qi)確(que)實(shi)能(neng)很(hen)好(hao)的(de)保(bao)護(hu)MCU的安全,但很快就被找到了漏洞。
我舉個實際破解的例子分析一下,大家就能夠明白了。
加密原理:
MCU和加密芯片各存儲一條認證秘鑰,存儲同樣的加密算法;
MCU產生隨機數發給加密芯片,後者用秘鑰加密後將密文返回,此時MCU解密後,比對明文是否和生成的隨機數相等。如果相等,程序正常運行;如果不相等,出錯處理。
因為盜版商沒有這條秘鑰,加密芯片與MCU交互的數據又是隨機變化的,無法找到規律,所以隻能把加密芯片的程序破解了,再複製一片加密芯片才能讓MCU的程序跑起來。而加密芯片不同於通用MCU,它內部有很多安全機製,破解難度非常大。
這種加密方案看似非常安全,但其實還是有漏洞的。
破解方法:
首先按照第二種破解方法,獲取到MCU的HEX文件。此處省略N步,不再複述。
使用軟件進行HEX反編譯,反編譯軟件目前有很多。
在反編譯的程序中,找到對比點,比如圖3所示,CJNE語句可能就是這個對比點。因此隻要把箭頭2那行語句刪除,然後重新把彙編語言下載到MCU中,破解工作就完成了。此時即使沒有加密芯片,MCU也能正常運行了。

其實原因很簡單。MCU是要對加密芯片的返回值進行判斷的,那麼不讓他做判斷,這樣一來不管加密芯片返回值是什麼,程序都能正常運行。
因此這種加密方案很快就被破解了。當然也不是這麼絕對,因為有些MCU即使剖片也不能獲得裏麵的HEX或者BIN文件,所以這種破解方案也要看MCU的安全等級夠不夠高。但是足以說明一個問題,這種通過對比加密結果來實現加密的方案,安全等級還是不夠高,還是有破解漏洞的。
因為篇幅有限,本期隻做解密技術的簡單介紹。所謂知己知彼,百戰百勝,唯有了解了破解技術,才能更有效的做加密防護。
推薦閱讀:
分享設計射頻電路電源的要點與經驗
深度解析電感的結構、分類及特性
采用麵向低噪聲的運放進行設計
物聯網低功耗多協議網絡設計如何避免信號幹擾?
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 具身智能成最大亮點!CITE 2026開幕峰會釋放產業強信號
- 助力醫療器械產業高質量發展 派克漢尼汾閃耀2026 ICMD
- 比異步時鍾更隱蔽的“芯片殺手”——跨複位域(RDC)問題
- 數據之外:液冷技術背後的連接器創新
- “眼在手上”的嵌入式實踐:基於ROS2與RK3576的機械臂跟隨抓取方案
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall



