原創|其它|編輯:郝浩|2012-11-15 17:23:52.000|閱讀 17532 次
概述:軟件脫殼就是對軟件加殼的逆操作。脫殼技術的進步促進、推動了加殼技術的發展,本文將三種脫殼技術做出對比,希望通過本文能讓用戶對脫殼有一定的了解,從而更好的保護自己的軟件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
所謂軟件脫殼就是對軟件加殼的逆操作,亦就是把軟件上存在的殼去掉。在上世紀90年代后期,加殼方式的軟件保護與破解的優勢經歷了交替上升和此消彼長的過程。脫殼技術的進步促進、推動了加殼技術的發展,在這種外部環境的催生下,各種加殼脫殼的軟件也如雨后春筍般出現。
在這里為大家介紹一下Themida、Winlicense和Enigma三種具有代表性的軟件脫殼的總結。
是一個強勁的保護系統, 專為了那些想保護自己的程式不被先進的反向工程和黑客軟件破解的軟件開發者而開發的Themida使用SecureEngine®的保護技術。它能夠以最高的優先等級運行,這些保護技巧是從來都沒在電腦防御技術領域出現過,使它最大程度地保護 任何程式 。Themida最主要的目的是遮蓋所有的現行的軟件保護技巧上的漏洞。
但是Themida破壞了程序的入口代碼并用一段殼代碼取代了它,根本模糊了OEP界線.要么脫殼不完全,要么進不了程序代碼(菜鳥的膚淺認識).但Themida也暴露出了它自身的弱點,以下是Themida脫殼的思路:
首先我們先看看Themida的OEP:
從圖中可以看出:
抓住以上三點作為突破口就可進行對Themida的脫殼。
Winlicense的OEP小特征:
對于Winlicense2.1.0.10及其以下版本,不用license,可自己隨意構造一個license直接bypass.然后脫殼。 bypass過程如下:
接下來就是Winlicense脫殼:
這種方法就不說了,各種編譯器特征碼,敏感API都可以實現,基本上Enigma都是通過jmp eax到達OEP的。
在跟蹤過程中,先把CRC給bypass了,這樣下斷或inline patch就會比較簡單了。
只要把以上灰色部分給NOP掉即可強制不使用IAT Redirection,跟蹤方法一般是通過看IAT什么時候被Redirection來定位具體代碼位置(通過搜索FF 25等方法)。
注意上面的TEST EDI,20的關鍵字,通常可以用來定位API Emulation。 把灰色部分NOP掉即可阻止API Emulation。
通過這篇文章我相信大家對軟件的脫殼技術的過程思路都有了大致的了解了,從軟件加密的角度來說充分了解了脫殼的機制,那么你對軟件加殼的技術一定會有更深入的了解,希望這篇文章能對大家在軟件加密方面有所幫助。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn