這也就是我們?yōu)槭裁匆獙W(xué)習(xí)脫殼的原因。殼有千萬種,但常用的就那幾種,我們只要把常用的幾種殼的脫法學(xué)會,那別的什么殼也就自然會了,這是一個過程,是要慢慢積累的!在這里我盡量教大家快捷簡單的脫殼方法,盡量讓大家一看就懂。現(xiàn)在我們先講一下給一個軟件脫殼我們要用到的軟件:
-----------------------------------------------------------------------------------------------------------------
1、查殼工具
PEID--功能強大的偵殼工具,自帶脫殼插件(但是,效果不怎么樣,所以我們就用它查殼就夠了!)
工作原理:核心是userdb.txt(呵何!大家可以看看)[通過殼的入口特征碼進(jìn)行辨認(rèn)]
使用方法:可以拖放、也可以把PEID添加到右鍵菜單里面去(如圖)
下載地址:PEid0.94漢化版.rar
2、手動脫殼工具(為什么不用自動的呢?因為沒有手動來的干凈,好使?。?br />
ODbyDYK(OD)--第一節(jié)課有講過的,我就不多說了!
常用快捷鍵:
F2:在需要的地方下斷點(INT3型斷點)
F3:選擇打開程序
F4:運行到所選擇的那一行
F7:單步進(jìn)入
F8:單步跟蹤
F9:執(zhí)行程序(運行程序)
3、修復(fù)工具
Import REConstructor 1.6—非常強大的修復(fù)工具哦~!~!~(如圖)
下載地址:Import_Fix_1.6.rar
------------------------------------------------------------------------------------------------------------------------------
好!現(xiàn)在我們講一下我們破解軟件的工作原理:
查殼(使用工具PEID)--->尋找OEP(OEP就是脫殼的關(guān)鍵地點)(使用工具OD)--->脫殼--->修復(fù)(使用工具Import REConstructor)
好!工作原理知道了吧·那我們今天就脫個帶有ASPack殼的筆記本,讓他脫下狼的偽裝,漏出真面目!ASPack是現(xiàn)在比較流行的一種殼!進(jìn)入正題!
帶有ASPack殼的筆記本下載地址:NotePad.98.E(ASPack_2.12).exe

脫殼步驟1。我們下把這個筆記本用PEID查殼我們可以清楚的看見他的殼是ASPack 2.12(如圖)
我們已經(jīng)知道是什么殼了那想什么呢!脫吧!
脫殼步驟2。我們將筆記本用OD載入(如圖)
我們看反匯編區(qū)的第一行(我們以后在給軟件脫殼時都要在反匯編區(qū)工作了(就是左上角的框))(如圖)
看見了嗎?開頭有個pushad 看見了嗎?在地址0040D001 那!根據(jù)“ESP定律脫殼法”只要在程序載入開頭第一句就是ESP的關(guān)鍵句的話,我們就可以使用“下硬件斷點的方法”直接到達(dá)OEP,那什么是關(guān)鍵句呢?在“ESP定律脫殼法”所謂的關(guān)鍵句也就是PUSHAD(壓棧)和POPAD(出棧),在這里我們遇到的是“pushad”所以我們可以用“ESP定律法”的方法脫它,那要怎么脫呢!往下看吧!就明白了!
首先我們按左上角的 按鈕或F8(也叫單步跟蹤) 步入到下一行(如圖)
這時我們看一下右上角的寄存器窗口(如圖)
0012FFA4 這段地址顏色非常鮮艷,呵呵!這就是關(guān)鍵!我說了我們這次脫殼用ESP定律法,那當(dāng)然跟“ESP”有關(guān)系了!我們看這個高亮的0012FFA4這個地址正好指向了ESP(如圖)
在ESP定律法的規(guī)定中,寄存器窗口的ESP對應(yīng)地址高亮就代表可以用“下硬件斷點”的方法脫殼!
我們在看一下OD左下角有個命令窗口,這是我們用來打命令的地方,我們在這個窗口中輸入“DD 0012FFA4”DD是什么意思呢?DD就是查找這個地址的所在位置的命令,0012FFA4也就是我們剛才看見的寄存器窗口里ESP對應(yīng)高亮的地址?。ㄈ鐖D)
我們按回車!這時我們看一下左下角的內(nèi)存窗口,OD已經(jīng)在內(nèi)存窗口中幫我們找到了這段地址在內(nèi)存中的位置了?。ㄈ鐖D)
看見了吧!但光顯示在內(nèi)存窗口中是沒有用的!要在反匯編窗口中顯示相應(yīng)的位置才行!這時我們可以用我剛剛提到的ESP定律法中的“下硬件斷點”的方法,找到在反匯編窗口中這段地址的位置。那我們應(yīng)該怎么做呢?大家要看好了!我們先用鼠標(biāo)點下在內(nèi)存窗口中顯示的“0012FFA4”這段地址,之后在這段地址上點右鍵,在彈出的菜單中選擇 斷點-----設(shè)置硬件訪問斷點-----Word (如圖)
這時我們已經(jīng)把這段地址放到了硬件斷點里了!我們按“運行程序”鍵 ?。ㄔ贠D的左上角或按F9)我們再看反匯編窗口(如圖)
我們可以看見在0040D3B0到0040D3BA這段距離有一條紅色的尖頭連著,這說明我們只要再按一下“單步跟蹤(F8)”鍵就會來到紅色箭頭指向的位置,這就叫跳轉(zhuǎn),我們按下“單步跟蹤”鍵來到地址為“0040D3BA”這里,這時我們看下這段代碼(如圖)
Push 就是入站的意思,后面寫著一段地址 004010CC 放一起的話意思就是 到004010CC入站的意思!在看它的下一行 有個retn 意思就是到004010CC入站后返回到 004010CC的這段地址。
我們判斷是否到達(dá)了OEP(脫殼的關(guān)鍵地點)的方法一共有兩種,1。就是查看常見五種語言特征 2??词欠裼写罂缍?大家現(xiàn)階段接觸的殼大部分都是看是否有大跨段跳轉(zhuǎn)來判斷是否到達(dá)OEP的!所以我們看上圖,現(xiàn)在我們所在的地址是0040C3BA而一會我們要跳到004010CC 這可是一個很大的跳轉(zhuǎn),所以我們判斷現(xiàn)在已經(jīng)快到達(dá)OEP了!我們點兩下“單步跟蹤”鍵,這時我們就跳到了入站的地點 004010CC 也就是我們脫殼的關(guān)鍵地點OEP?。?!好了,現(xiàn)在我們脫殼吧!我們用鼠標(biāo)指在004010CC這段地址上,點右鍵在彈出的菜單中點“用OllyDump脫殼調(diào)試進(jìn)程”點擊進(jìn)入脫殼界面 (如圖)
點脫殼,保存到我們想保存的地方就OK了?。。ǖ@指的是單個文件的軟件,要是有多個文件組成的軟件的話,一定要保存到這個文件目錄,否折是用不了的?。?br />
好!我們在拿剛才我介紹的查殼軟件PEID查下看看還有殼沒?(如圖)
哈哈!脫掉了吧!我們可以清楚的看見這個軟件的真面目是用Microsoft Visual C++ 6.0 編的!呵呵!這樣我們以后在遇到ASPack殼的話我們就不用怕它了!先脫了他的防彈衣在開槍打它吧!呵呵!
對了!有件事忘了,剛剛我們下的硬件斷點在破解完軟件后一定要把他刪除哦!否折會一直留在OD中!我們可以在OD中點 調(diào)試---硬件斷點 即可刪除掉它!(如圖)
我們也可用它查看我們是否以經(jīng)下了斷點!
好了!今天的課程就講到這里,因為這個軟件脫殼后是不需要修復(fù)的,所以今天就沒有講到修復(fù),我們以后一定會用到它的,大家不用著急!呵何!13號見!88!
以后課程將每周日發(fā)布一篇
下節(jié)課程時間:六月十三日 12:00整
愛華網(wǎng)



