ximo脫殼1 手脫UPX殼

2022-09-24 05:48:11 字數 1803 閱讀 3873

ximo脫殼之基礎教程第一課——手脫upx殼

upx殼為一種簡單的壓縮殼

除錯工具為peid和od

手脫upx有四種方式找到oep

第一種:單步跟蹤

第二種:esp定址

第三種:2次記憶體映象法

第四種:一次直達法

首先,開啟od,將示例程式

開啟該檔案之後,我們進行單步跟蹤

圖中標出的即為單步跟蹤的按鈕

當我們遇到跳轉語句,例如jmp語句時,我們要判斷他是往下跳還是往上跳,如果為往下跳,我們直接跳過去就可以,但是如果是往上跳,可能會有迴圈等結構,比較的麻煩,所以我們才去直接斷點的方式來避免往上跳的情況

比如:

這裡我們可以看到執行的該條語句為向上跳轉,此時我們可以在該條語句的下一句處設下斷點,然後點選執行按鈕,即可直接到達,而不需要在向上跳轉

如圖所示

之後我們一直單步跟進就可以

知道我們發現乙個比較特殊的jmp跳轉

這裡我們發現這條jmp指令跳轉的幅度很大,我們單步跟進去

這裡就是oep了,到此我們就找到oep了

接下來演示如何脫殼

脫殼可以使用od自帶的外掛程式,右鍵點選使用ollydebug脫殼除錯程序

然後選擇第一種或者第二種方式都可以脫殼

這種方法的原理就是堆疊平衡,在跳轉到oep之前,程式肯定會平衡堆疊,也就是會經過同乙個位址(這裡描述的可能不是很清楚)

下面開始操作

首先右鍵點選esp暫存器,點選follow in dump

或者在命令列中輸入 dd/hr esp暫存器中的值

然後彙編**區右鍵點選breakpoint斷點,選擇hardware on access(硬體斷點),後面選擇word,dword都可以

然後點選執行

可以看到直接定位到了那句jmp到oep的指令

點選m

進入該介面

點選.rsrc那一行右鍵下斷點,然後執行

然後再點選upx0那一行,再次下斷點執行,

兩次斷點之後,我們又發現了跳轉到oep的指令

右鍵查詢,選擇命令

由於第一條是pushad,所以一定有一條popad與之對應,我們這裡直接查詢popad

直接就可以找到了

ximo脫殼4 手脫FSG殼

基礎脫殼教程4 手脫fsg殼 fsg 2.0 bart xt 重點為修復 手動 查詢iat 一 單步跟蹤法 單步跟蹤就是和之前一樣的套路,直接單步向下,遇到向上跳轉直接用f4跳過就可以了,主要是在單步的時候注意一些跳轉,可能跳轉到的地方就是程式的oep 也有可能跳轉到oep的指令會被略過,所以要仔細...

手脫UPX殼方法介紹

方法1 單步跟蹤 f8單步跟蹤,向上不能讓他跳,有loopd迴圈也一樣 跳轉的下一行按f4 執行到選定位置,迴圈loopd在call下一句f4執行 只允許向下跳,如單步跟蹤call處程式執行,則需要過載程式,再call處f7跟進 近call f7,遠call f8 pushad 入棧 popad 出...

手脫64位UPX殼

背景 近期舍友不知道為啥忽然要漢化乙個gta的外掛程式,第一次聽說他要漢化,問了我一堆關於逆向的東西。由於外掛程式加了upx的殼 也是peid說的,我感覺是乙個很奇怪的殼 他搞不定於是發來給我。我平時也是逆向linux的elf檔案多一些,windows的而且還是64位的幾乎沒搞過,平時也沒脫過什麼殼...