1. 程式人生 > >手脫UPX3.91殼(練習)

手脫UPX3.91殼(練習)

0x01 準備

OD
UPX加殼程式
可以加殼的軟體

0x02 給軟體加殼

我找了半天發現winhex不錯,而且是沒殼的可以直接加殼
1.複製一份可執行檔案
在這裡插入圖片描述
將賦值好的檔案用UPX3.91加殼
在這裡插入圖片描述

0x02 脫殼

查一下殼
在這裡插入圖片描述
OD載入,檢視入口點
在這裡插入圖片描述
單步除錯,到如圖的這一步,不能向下跟,因為下面call的函式是ExitProcess(一般程式到快結束的時候會呼叫這個API)說明程式要跑飛了
在這裡插入圖片描述
之後研究一下這個跳轉這個是個類似迴圈,在A1和BE之間跳轉,在跳轉裡面還有兩個跳轉,一個是在A6,一個是在B7,je會跳轉到84,而B7會跳轉到C0,可能程式正在解壓。C0是剛才說了程式會跑飛,這個跳轉先別管,看一下A6這個跳轉
在這裡插入圖片描述


在這裡插入圖片描述
這個跳轉跳到84,84下面有個為實現的跳轉,會跳到C6,跳過ExitProcess這個函式,好的,我們直接在C6下斷點,之後單步執行
在這裡插入圖片描述
在這裡插入圖片描述
這個看到了popad,說明程式解壓完了,之後看到一個大跳轉,說明馬上到OEP了
在這裡插入圖片描述
之後到達程式OEP
**在這裡插入圖片描述**
之後使用od自帶的外掛脫殼
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
最後查殼執行
在這裡插入圖片描述
在這裡插入圖片描述

0x04 總結

加密殼脫法比較簡單一般是push開始,popad結束,可以使用查詢popad,esp定律法等等來脫殼。