歡迎光臨
我們一直在努力

零基礎學破解-第四集

作業系統環境:Windows XP Pro 32bit 版本2002  SP3
使用工具:Immunity Debugger ,用OllyDbg也可以,(這邊我自己是使用別人改良過的簡體中文化Immunity )
查殼工具:PEID、 (用來偵測程式有沒有被加殼)
脫殼工具:LordPE
輸入表重建工具:ImportREC
要破解的軟體:灰鴿子木馬專殺工具 下載點,壓縮密碼lonelysec

(下載的練習程式不保證是安全無毒的,所以建議都下載安裝在虛擬機上。如載點失效,請私訊波波粉專)


這集是分享一個思路,程式有自校驗,如果想要脫殼的話怎麼辦?
因為這個程式有"自校驗","自校驗"就是他程式本身會去驗證自己的程式大小,比如有沒有被別人破解、被別人脫殼或是被別人更改過,會去比對像是檔案大小之類的,如果異常就無法開啟。

這集會接觸到ESP定律、脫殼、自校驗、OEP、ja、cmp指令。
首先先用PEID查看程式有沒有加殼,這邊可以查看到程式被加殼了,但沒關係,被加殼的程式很常見。
網路上有很多直接脫殼的方法,這邊就不一一介紹了。

首先用Immunity Debugger 打開程式,按F8往下可以在004252F1地址右邊的寄存器位址觀察到ESP呈現紅字

這邊主要會用到ESP定律,不懂ESP定律的可以Google一下,或是看看就好,反正第一次提到,以後也會再提。

我們這邊會使用脫殼工具:LordPE來脫殼,但在進行前我們要先透過ESP定律找到OEP

這邊我們右鍵 選擇 HW break[ESP]

然後選擇調試-->硬件斷點

選擇 刪除。

接下來我們 F8。

因為程式被加殼,所以畫面會像這樣。這邊我們一樣用前面幾集教的,從模塊中刪除。

這邊我們右鍵 選擇用OD脫殼調試進程。

可以觀察到入口點地址 252F0 --> 修正為 7797。

這邊可以直接點擊脫殼。不過這邊我們介紹另一種方法來脫殼。

我們先記住入口點地址 7797這個位址。

接下來用脫殼工具:LordPE,然後選擇灰鴿子查殺程式

我們選擇灰鴿子程式,右鍵-修正鏡像大小,接著右鍵,點擊完整轉存(完全脫殼),就脫殼完畢了。

接下來透過輸入表重建工具:ImportREC選擇灰鴿子查殺工具

在左下方OEP位址我們輸入剛才的7797,然後點擊自動搜索。

接下來選擇 獲取導入表,選擇剛才LordPE脫殼後的程式。

這邊保存了一個新的dumped_.exe程式。

這個程式是脫殼後的,但是可以發現點擊"打開",程式是跑不出來的。

因為這個程式有"自校驗","自校驗"就是他程式本身會去驗證自己的程式大小,比如有沒有被別人破解、被別人脫殼或是被別人更改過,會去比對像是檔案大小之類的,如果異常就無法開啟。

所以我們透過Immunity Debugger打開這個dumped_.exe程式。

然後透過API斷點插件設定GetFileSize(取文件大小)

設置完成後,我們F9執行程式,可以觀察右下角。

我們右鍵-->反彙編窗口跟隨,跟進去看看。

可以觀察到00401346地址這邊就是入口點,我們在這邊先下一個斷點,然後點擊右上方的"B"

這邊我們將一開始下的斷點刪除,因為已經沒用了,現在我們找到新的00401346地址斷點了

設定好後,我們重啟程式。

這邊可以觀察到0040134C地址 cmp eax,0xC6C8

cmp指令就是對操作數之間運算比較的意思。

也就是比對程式的檔案大小是否是 0xC6C8大小。

0xC6C8 16進位 轉 10進位 就是 50,888,而原程式的大小差不多是50,769,有一點小小差異,但其實是一樣的,可能是16進位轉10進位上有些小誤差。

可以看到00401351地址這邊有個ja的判斷式,可以推論就是上面的0040134C地址 cmp eax,0xC6C8去判斷檔案大小,如果檔案大小不正確,就會進行ja的判斷。

所以為了避免他去判斷,我們可以直接將ja進行nop (前面幾集的教學)

設定好nop後,我們就把他選起來,然後保存。

保存後,就可以開啟程式了。

贊(1) 打賞
轉載請附上作者連結:波波的寂寞世界 » 零基礎學破解-第四集

波波的寂寞世界

Facebook聯繫我們

覺得文章有用,請作者喝杯咖啡

掃一掃打賞作者狗糧