<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機逆向分析淺談

單片機逆向分析淺談

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏
山外有山,天外有天,學(xué)無(wú)止境,做產(chǎn)品,搞技術(shù)更是如此。沒(méi)有任何個(gè)人及公司能夠閉門(mén)造車(chē)研發(fā)出好產(chǎn)品來(lái),需要不斷的學(xué)習別人先進(jìn)的東西,取長(cháng)補短,這樣人類(lèi)才能不斷的進(jìn)步,社會(huì )才能不斷的發(fā)展。當今社會(huì ),商品經(jīng)濟環(huán)境早已成為主流,學(xué)習、創(chuàng )新能力變得越來(lái)越重要,沒(méi)有學(xué)習,就不可能有創(chuàng )新。
要學(xué)習、學(xué)會(huì )先進(jìn)技術(shù),對于嵌入式產(chǎn)品而言,要了解硬件原理,有電路板就可以,這也容易獲得,買(mǎi)個(gè)設備就可以了。而對于嵌入式軟件,最好莫過(guò)于得到源代碼。而源代碼是公司的命脈,外界的人不可能獲得。除非去偷,這是犯法傷德的事,可不能干。就沒(méi)有其它方法了?非也,那就是以技攻技,即以更前沿、更具技術(shù)含量的方案去解決,我這里稱(chēng)這方法為逆向分析。
第一步,得有被學(xué)習、研究的對象,花錢(qián)買(mǎi)要學(xué)習的產(chǎn)品。這步?jīng)]有技術(shù)含量,只是商務(wù)運作。商品經(jīng)濟下,只要有錢(qián),應該就可以解決。
第二步,將設備的核心,即CPU的程序讀出來(lái),得到二進(jìn)制即BIN程序文件。這個(gè)步驟,需要專(zhuān)業(yè)人士操作,非專(zhuān)業(yè)人士勿試。
第三步,將第二步得到的BIN程序文件進(jìn)行反匯編,得到可閱讀性強的匯編源代碼,這樣,就可以完全學(xué)習了。只有讀懂了,才能夠修正、創(chuàng )新。這個(gè)步驟,涉及的面比較廣,首先是需要解決反匯編工具的問(wèn)題,必須要有支持本CPU的反匯編工具。其次是要有看得懂本CPU匯編程序的工程師 。
第四步,也是最高境界了,就是將第三步獲得的已看懂的匯編程序,精準的翻譯成更為直觀(guān)的C語(yǔ)言程序。有此C源代碼為基礎,就可以任意發(fā)揮創(chuàng )新了。這一步要求工程師不僅兼備匯編語(yǔ)言及C語(yǔ)言,對耐心、細心要求也高,工程師對這項枯燥的工作,一定要感興趣,否則再牛的工程師,也往往讓項目做失敗。
也只有那些有超強研發(fā)實(shí)力的公司才能完全擁有上面各步驟中所需技能的工程師,而對于中小型公司,很難湊齊這些專(zhuān)業(yè)工程師。不過(guò)對于中國來(lái)說(shuō),由于咱們對計算機方面,特別是單片機方面的研究、應用,起步相對國外發(fā)達國家,要晚很多,往往是國外推出了新單片機,國人勤奮學(xué)會(huì )應用,所以從應用的層面講,國人研究得還是比較透的,咱們好多單片機都做不出來(lái),但應用的熟練程度,絕不遜于國外發(fā)達國家,這樣就自然而然的產(chǎn)生了不少對相應單片機有深入了解的高手,這些高手,能很輕易的讀取已經(jīng)硬件加密過(guò)的CPU里的程序,再者,國內有這方面的市場(chǎng)需求,所以,中國在硬件解密方面的實(shí)力是相當強的。這就為逆向工程提供了堅實(shí)的基礎,在中國,可以很輕易找到單片機硬件破解、讀取CPU里程序的工程師。
但對于好多有技術(shù)含量的項目,就算硬件破解出來(lái)了,得到了BIN程序文件,要反匯編分析也非易事,有的甚至還進(jìn)行了軟加密,要順利逆向分析,必須要有好的反匯編工具,這點(diǎn)至關(guān)重要。另外就是要有資深的既懂匯編又懂C的工程師,這類(lèi)的工程師,相對硬件破解工程師來(lái)說(shuō),要稍難找些。對于有逆向分析需求的中小公司,不一定要本公司具備相應的工程師,完全可以找專(zhuān)業(yè)、專(zhuān)職的逆向公司或個(gè)人,這樣應該會(huì )更能有效解決問(wèn)題。
上面談的全是逆向分析的內容,但如何防逆向分析呢?公司上下齊心,辛辛苦苦做出一個(gè)產(chǎn)品出來(lái),如果一下子就被別人給逆向分析出來(lái),這個(gè)損失是巨大的。任何產(chǎn)品,理論上都可以成功被逆向分析出來(lái),只是逆向分析的難度問(wèn)題。如果單片機的硬件加密及軟件加密做得足夠強大,大大增加逆向分析的難度,這樣逆向時(shí)間勢必要成倍增加,這樣從逆向時(shí)間及成本上,讓逆向者自我放棄。具體有下面幾種方法加強防逆向分析:
1.盡量選擇新推出的穩定的單片機,這個(gè)尺度有點(diǎn)難把握,但可以選擇大公司新推出的芯片,這類(lèi)公司新推的芯片,穩定性方面應該會(huì )有所保障的,如TI、NXP、Atmel、ST意法等。
2.盡量選擇性?xún)r(jià)比高的16位或32位單片機代替8位單片機,如STM32F10X系列,這類(lèi)系列的單片機逆向是相當有難度的,且價(jià)格跟一些8位機差不多。16位的如MSP430系列。
3.盡量在程序中增加軟加密代碼,這樣就算成功硬破解,得到了程序,燒錄到芯片中,也無(wú)法正常運行,還必須要進(jìn)行軟解密。有些單片機自帶有軟加密特性可用于軟加密,如果艾特梅爾的Atmega系列及ST的STM32F10X系列,但有些就沒(méi)有,像51及MSP430,很少有此特性,這樣要實(shí)現軟加密,就必須另外帶一個(gè)芯片,結合程序實(shí)現軟加密。
4.燒錄程序時(shí),將單片機硬件提供的加密位,全部置為加密狀態(tài)。


關(guān)鍵詞: 單片機逆向分

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>