新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機軟件加解密原理淺析

單片機軟件加解密原理淺析

作者: 時間:2016-10-15 來源:網(wǎng)絡 收藏

隨著科技的發(fā)展,與相關的嵌入式電子產品的生命周期也越來越短,如何讓自己的產品縮短開發(fā)周期,加速上市時間,已成為眾多商家及工程師不得不思考的問題。真正的創(chuàng)新或高效,不只是來自于大自然對人類的啟發(fā),更多的是來自于學習,只有善于學習的人,才有進步,日常生活如此,搞技術更是如此。

本文引用地址:http://2s4d.com/article/201610/307235.htm

經過十多年開發(fā)應用及加解密實踐,覺得系統(tǒng)很脆弱,特別是沒做任何加密措施的產品。理論上,任何單片機系統(tǒng)都可以被解密,只是解密成本與時間問題。單片機,沒什么深奧的,但不夸張的說,它也是一門藝術,是工程師長期含辛茹苦智慧的結晶,如果應用得好,可以快速學習他人的先進技術,也可以防止自己的技術成果輕易被他人取用。如果軟件加密做得好,要完全進行軟件解密,要分析數(shù)天,甚至花幾個月,還不一定能完全分析得出來(這與分析人員的這與分析人員的經驗及知識結構關系很大)。

單片機加解密可劃分為兩大類,一類是硬件加解密,一類是。硬件加密,對于單片機來說,一般是單片機廠商將加密熔絲固化在IC內,熔絲有加密狀態(tài)及不加密狀態(tài),如果處于加密狀態(tài),一般的工具是讀取不了IC里面的程序內容的,要讀取其內容,這就涉及到硬件解密,必須有專業(yè)的硬件解密工具及專業(yè)的工程師?,F(xiàn)在重點談談軟件方面的加解密。

的前提是要有軟件,即單片機程序,可以是以源代碼的形式(C語言或匯編語言程序)提供,或是以二進制(bin格式或hex格式等)提供。一般學習借鑒別人的程序,一般是以二進制形式提供(此二進制程序一般是從上述硬件解密的過程中得到)。隨著科技的發(fā)展,一般由硬件解密過程獲得的二進制程序,還需要做進一步的軟件分析、修改,即軟件解密過程,程序功能才能真正的有效(除非沒有做任何軟件加密的程序,稍微高手一點的工程師會對自己的軟件加密的),否則程序只能燒到母片上有效,而燒到同型號的其它芯片,某些關鍵功能會失效,甚至整個程序將不工作。

其實軟件加密原理很簡單,就是利用單片機IC廠商,為每片出廠芯片的某一特殊全球唯一識別參數(shù),即ID號做為密鑰,對程序進行加密。如果以本ID號的程序燒到另一ID號的芯片中,程序中經軟件加密過的部分的功能將完全失效。

要解密上述經軟件加密過的程序,唯一的途徑,就是反匯編程序,分析單片機反匯編后的匯編程序,將程序中軟件加密相關的密鑰去掉,然后編譯得到新的程序。這項工作需要的不只是耐心,更多的是專業(yè)知識與經驗。對于搞技術的來說寫文字的東西是最為受折磨的事,先寫到這里。



評論


相關推薦

技術專區(qū)

關閉