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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

UPX脱壳

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

什么是加殼

加殼是一種程序的保護機制,它可以保護我們的程序不那么容易的被逆向出來。不能直接用IDA分析出來。
其原理為經過一段加殼程序得到一個新的程序,我們原來的程序就在新的程序中的一部分,生成的新程序中也會多一段代碼,多的一部分就是解密代碼。
加殼一般分為兩類,一種是加密加殼,其目的就是為了防止逆向而存在的一種殼。另外一種就是壓縮殼,將很大的,有很多重復數據的程序壓縮成很小的程序,在運行的過程當中動態解壓。其中UPX就是一種壓縮殼。

UPX脫殼

加殼可執行文件 UPX sample.exe
脫殼執行文件 UPX -d sample.exe (很多時候不管用)

所以要學會手動脫殼

手動脫殼的目標:
1.找到原始程序的入口地址 (OEP)
2.再原始程序入口地址處設置硬件斷點(下次調試可快快速進入原始代碼,硬件調試不會修改數據)

進階目標:
脫殼到文件,并修復運行。

脫殼步驟

先查殼:
發現是UPX殼,然后用IDA打開

發現也是無法靜態分析出來,于是我們就開始調試。

由于前面已經講過UPX是個壓縮殼,我們只需要找到這個程序頭部的壓縮代碼的終點(也就是原始代碼的起點即可)

在一直單步過發現有return 或 end 之類的命令之后直接單步進入。
進入之后就發現了原始的匯編代碼,但是無法查看其偽代碼,需要新建一個函數,然后就可以查看偽代碼了。


這樣就完成了手動脫UPX殼

總結

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

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