日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手动脱UPX壳的几种方法

發布時間:2024/4/18 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手动脱UPX壳的几种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UPX是一種常見的壓縮殼。通過PEID檢測到是UPX的殼的話,可以用如下四種方式來脫殼:

單步跟蹤法、ESP定律、內存鏡像法、POPAD查找法。

1.單步跟蹤法。就是使用ollydbg(簡稱OD)加載程序后,按F8進行單步步過。如果遇到程序向上跳轉(紅色箭頭表示跳轉實現),則在程序命令的下一行按F4,將程序運行到所選位置。要保證程序一直向下跳轉,否則運行一個向上跳轉,就會跳到殼的循環當中,就出不來了。運行到一定代碼后,如果看到一個比較大的跳轉,可能是jmp,也可能是ret。跳轉之后的代碼是popad,一般就是到了程序的OEP了。然后脫殼即可。

2.ESP定律。這個是利用堆棧平衡的原理,如果具體想了解什么是ESP定律和堆棧平衡,可以看這個鏈接的帖子:http://www.pediy.com/bbshtml/BBS6/pediy6083.htm
一般操作步驟:使用OD加載程序后,按F8進行單步跟蹤,注意右上角的寄存器窗口,當發現ESP和EIP的值同時變紅時(表示同時發生了變化)。在寄存器窗口中點擊右鍵,選擇“數據窗口中跟隨”。然后在右下角的內存窗口中,點擊右鍵,選擇“斷點”——“硬件訪問”——“字”。最后按F9運行程序,就會直接來到程序的OEP附件了。最后記得要刪除剛剛下的硬件斷點。通過菜單欄上選擇“調試”——“硬件斷點”,就會看到我們下的斷點,刪除即可。

3.內存鏡像法。加載程序,按CTRL+M,或者點工具欄上的M按鈕。打開內存窗口。在資源這一行上按F2下斷點,即“.rsrc”這一行。然后按F9運行程序。再按CTRL+M打開內存窗口,在數據行上下斷點(按F2)。即PE頭的下一行。下斷后,再按F9運行,就會達到程序的OEP附近了。

4.POPAD查找法。加載程序后,按CTRL+F進行查找。在查找框中輸入“popad”,把“整個塊”的復選框去掉。按后回車,就會來到程序OEP的附件了。按后按F4,將程序運行到當前位置,再單步跟蹤幾次就到OEP了。

總結

以上是生活随笔為你收集整理的手动脱UPX壳的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。