單片機(jī)軟件加解密原理淺析
隨著科技的發(fā)展,與單片機(jī)相關(guān)的嵌入式電子產(chǎn)品的生命周期也越來(lái)越短,如何讓自己的產(chǎn)品縮短開發(fā)周期,加速上市時(shí)間,已成為眾多商家及工程師不得不思考的問題。真正的創(chuàng)新或高效,不只是來(lái)自于大自然對(duì)人類的啟發(fā),更多的是來(lái)自于學(xué)習(xí),只有善于學(xué)習(xí)的人,才有進(jìn)步,日常生活如此,搞技術(shù)更是如此。
本文引用地址:http://cafeforensic.com/article/201610/307235.htm經(jīng)過十多年單片機(jī)開發(fā)應(yīng)用及加解密實(shí)踐,覺得單片機(jī)系統(tǒng)很脆弱,特別是沒做任何加密措施的產(chǎn)品。理論上,任何單片機(jī)系統(tǒng)都可以被解密,只是解密成本與時(shí)間問題。單片機(jī)軟件加解密,沒什么深?yuàn)W的,但不夸張的說(shuō),它也是一門藝術(shù),是工程師長(zhǎng)期含辛茹苦智慧的結(jié)晶,如果應(yīng)用得好,可以快速學(xué)習(xí)他人的先進(jìn)技術(shù),也可以防止自己的技術(shù)成果輕易被他人取用。如果軟件加密做得好,要完全進(jìn)行軟件解密,要分析數(shù)天,甚至花幾個(gè)月,還不一定能完全分析得出來(lái)(這與分析人員的這與分析人員的經(jīng)驗(yàn)及知識(shí)結(jié)構(gòu)關(guān)系很大)。
單片機(jī)加解密可劃分為兩大類,一類是硬件加解密,一類是軟件加解密。硬件加密,對(duì)于單片機(jī)來(lái)說(shuō),一般是單片機(jī)廠商將加密熔絲固化在IC內(nèi),熔絲有加密狀態(tài)及不加密狀態(tài),如果處于加密狀態(tài),一般的工具是讀取不了IC里面的程序內(nèi)容的,要讀取其內(nèi)容,這就涉及到硬件解密,必須有專業(yè)的硬件解密工具及專業(yè)的工程師。現(xiàn)在重點(diǎn)談?wù)勡浖矫娴募咏饷堋?/p>
軟件加解密的前提是要有軟件,即單片機(jī)程序,可以是以源代碼的形式(C語(yǔ)言或匯編語(yǔ)言程序)提供,或是以二進(jìn)制(bin格式或hex格式等)提供。一般學(xué)習(xí)借鑒別人的程序,一般是以二進(jìn)制形式提供(此二進(jìn)制程序一般是從上述硬件解密的過程中得到)。隨著科技的發(fā)展,一般由硬件解密過程獲得的二進(jìn)制程序,還需要做進(jìn)一步的軟件分析、修改,即軟件解密過程,程序功能才能真正的有效(除非沒有做任何軟件加密的程序,稍微高手一點(diǎn)的工程師會(huì)對(duì)自己的軟件加密的),否則程序只能燒到母片上有效,而燒到同型號(hào)的其它芯片,某些關(guān)鍵功能會(huì)失效,甚至整個(gè)程序?qū)⒉还ぷ鳌?/p>
其實(shí)軟件加密原理很簡(jiǎn)單,就是利用單片機(jī)IC廠商,為每片出廠芯片的某一特殊全球唯一識(shí)別參數(shù),即ID號(hào)做為密鑰,對(duì)程序進(jìn)行加密。如果以本ID號(hào)的程序燒到另一ID號(hào)的芯片中,程序中經(jīng)軟件加密過的部分的功能將完全失效。
要解密上述經(jīng)軟件加密過的程序,唯一的途徑,就是反匯編程序,分析單片機(jī)反匯編后的匯編程序,將程序中軟件加密相關(guān)的密鑰去掉,然后編譯得到新的程序。這項(xiàng)工作需要的不只是耐心,更多的是專業(yè)知識(shí)與經(jīng)驗(yàn)。對(duì)于搞技術(shù)的來(lái)說(shuō)寫文字的東西是最為受折磨的事,先寫到這里。
評(píng)論