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