nSPack 手工脱壳过程
nSPack 手工脫殼過程
由于本人第一次進行手工去殼,記錄一下過程~
這篇文章以XCTF中的reverse進階題crackme為例子
題目鏈接:
鏈接:https://pan.baidu.com/s/1qYHTb0l6-25RdyvAPinbYA
提取碼:z8zf
或者:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=4966
本題需要的工具的鏈接:
三個工具都在其中~
鏈接:https://pan.baidu.com/s/1NWjomUuBk88xnH1DM1hUYQ
提取碼:qpse
利用ESP定律脫殼,關于ESP定律
還要找到OEP,所謂的OEP,意即程序的入口點,可以用OD載入,不分析代碼。
首先已知是nSPack殼,直接用OD打開,發現pushfd和pushad兩句關鍵句:
直接按F8執行到pushad,ESP變化,直接ESP右鍵,給ESP設置一個斷點
F9直接執行到popfd,可以看見下面有一條JMP指令
而且是跳得比較遠的,根據北斗的特點來說
下面這一條語句很有可能是跳轉到OEP的:
直接F8單步執行JMP,跳轉到:
看上去應該是OEP了,,,,,
記住這個OEP地址,后面會需要:00401336
接下來使用另一個工具PETools
利用PETools獲取轉存:
得到一個Dumped.exe
雙擊運行不能正常運行,與原來運行不一致
這是就需要另一個工具 ImportREC
利用它來修復IAT:
- 第一步選擇你的程序,
- 第二步輸入剛剛記下來的OEP地址
- 第三步自動搜索
- 第四步獲取輸入表
- 第五步修復轉存文件
(下圖是執行到第三步的圖)
得到一個Dumped_.exe文件:
繼續查殼:
脫殼成功~~
PS:
這個過程說不上有多復雜,但是有很多知識點還是不知道的
第一次上手這個脫殼,有點生疏,查閱了許多資料
還有一點,再進行脫殼時,OD貌似不能關閉
在這個過程中本人關閉了一次,導致找不到執行的crakeme.exe文件
要學的東西還是很多啊~
關于本題的做法可以參考一下我的博客(本題做法),嘻嘻嘻
總結
以上是生活随笔為你收集整理的nSPack 手工脱壳过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue中下载文件导出保存到本地
- 下一篇: qt结合vs,opengl基础示例