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