天天看點

002 PECompact 1.84

文章目錄

    • 查殼
    • 單步跟蹤到OEP
    • 修複導入表

查殼

002 PECompact 1.84

今天來脫一下PECompact 1.84這個殼,脫這個殼的目的是為了了解一個技巧——當遇到無法向下跟随的時候,可以找到附近沒有實作的大跳轉,下斷點繼續跟蹤。

單步跟蹤到OEP

接下來OD載入這個程式,采用單步跟蹤的方法脫掉這個壓縮殼。

002 PECompact 1.84
002 PECompact 1.84

當程式執行到這個位置的時候,這裡有一個jmp是往上跳的,按照正常的單步跟蹤脫殼的方法,我們應該直接在下一條指令處F4,讓他執行到下一條指令。但是當你在下一條指令直接F4的時候,程式會直接跑飛。

這個時候就要用到剛才的技巧了,在附近尋找一個沒有實作的大跳轉,一般是在上面。一直往上拉,

002 PECompact 1.84

在程式上面我們看到一個je,後面的OpCode的offset代表這是一個大跳轉,而且是沒有實作的。

002 PECompact 1.84

那麼我們就可以直接跟進去,下斷點,讓程式斷下,然後繼續單步跟蹤。

002 PECompact 1.84

這裡也是一個大跳轉,按照剛才的方法,回車跟進去下斷點,F9跑起來,就到了這裡。繼續往下跟

002 PECompact 1.84

跟到這裡的時候,同樣,回車跟進去下斷點F9

002 PECompact 1.84

這裡還是一樣的套路,繼續跟

002 PECompact 1.84
002 PECompact 1.84

當跟到這裡的時候,可以知道馬上就到了OEP了,和大部分殼的套路一樣,會push一個位址,然後傳回回去。

002 PECompact 1.84

接着就來到了熟悉的OEP。

修複導入表

002 PECompact 1.84

然後在OD裡dump檔案,然後修複導入表,輸入OEP,自動查找IAT,擷取輸入表,轉儲檔案。

002 PECompact 1.84

脫殼後的程式正常運作,這個殼也就完成了。當然了,這個殼用ESP定律也是可以秒脫的,我這裡純粹是為了練習這個技巧而已。

需要相關檔案可以到我的Github下載下傳:https://github.com/TonyChen56/Unpack-Practice