LoardPe與Import REC X64dbg腳本 脫殼 Upx


LoardPe與Import REC X64dbg腳本 脫殼 Upx

將要學習到的內容

  • x64脫殼腳本的編寫
  • LoarPe 與Import 工具的使用

一丶X64dbg調試器與腳本

1.1 起因

在逛論壇的時候,發現別人發的CrackMe帶有UPX壓縮,直接進行脫殼. 使用EPS定律即可.

但是 x64Dbg下沒有脫殼腳本,為什么使用脫殼腳本.原因是腳本方便.不用做重復動作.

正因為沒有脫殼腳本呢.所以進行脫殼腳本的編寫.

其實x64Dbg腳本特別簡單.直接去官網去看就行.

https://help.x64dbg.com/en/latest/commands/index.html

腳本就是模擬人的手工操作.

例如你在調試程序的時候, 單步步過(F8) 那么腳本的命令就是sti 你如果是步進(F7) 那么腳本的命令就是

sto, 例如你通過x64Dbg界面下硬件斷點. 那么腳本命令就是(bph) 具體參數可以查一下命令手冊.

1.2 腳本的調試

寫腳本簡單,主要是腳本的調試.而且OllyDbg也有腳本.其實都是一樣的.只不過命令有些許不同而已.

具體的看一下差異化即可.

Tab 在腳本窗口加載腳本之后,Tab建則是單步執行腳本.也就是一條命令一條命令的執行

Space(空格鍵) Space則是直接運行起來你的腳本

1.3 Upx脫殼腳本

下面的腳本就是寫的一個Upx脫殼腳本.注意Upx版本不同,有通用的Upx腳本,我的只是為了學習,臨時針對我分析的CrackMe寫的一個Upx脫殼腳本.

腳本如下:

bphc                        //清除所有硬件斷點
sti                         //執行一次F8(步過)
bph esp,r,1                 //對當前Esp棧頂下 硬件讀取斷點,設置一個字節 r代表讀取 
erun                        //執行一次F9也就是運行起來,erun就是中間出異常了交給調試器執行
find eip,e9,1000            //利用Find功能在EIP位置尋找 jmp,搜索的內存大小為1000
bphc                        

bph $result                 //搜尋的結果會放到 $result變量中
erun                        //執行
bphc       
sto 2                       //執行一下F7
cmt eip,"Current Eip is Oep Please Dump Entry" //在EIP位置填寫注釋
ret

其實這段腳本主要的功能就是 模擬ESP定律執行的步驟, 下好硬件斷點,然后執行,之后之后會在斷點位置斷下,然后在尋找JMP,找到之后在對此位置下硬件斷點.繼續執行,繼續斷下,斷下后然后進入就是OEP了.

二丶LoardPe 內存Dump與Import Rec導入表修復工具

2.1 腳本執行到OEP

如上圖所示,腳本執行之后會在OEP位置,我加了段提示就是告訴你要Dump內存了.

x64也有相關插件直接dump+修復的工具.我沒配置.索性使用這種方法.(loardpe + import rec)

可以得出以下信息 OEP VA = 00401500

ImageBase = 00400000 (這個不貼圖了,是這個)

以上信息一會會用到.

2.2 LoardPe Dump內存

此時x64Dbg在OEP位置,不要關閉x64,打開LoardPe 以管理員運行,不然可能搜索不到你的進程

完整轉存內存到文件即可. 此時這個文件無法正常運行,需要我們修復一下.

2.3 Import Rec 進行修復

總共四個步驟

ps:以管理員運行 Import Rec

  • 1.選擇你的進程,也就是x64Dbg 掛起的那個進程

  • 2.OEP位置, 這個就用到我們上面的信息了. OEP這里是RVA 我們上邊得出OEP VA = 00401500 imageBase = 00400000

RVA = VA - ImageBase = 1500

所以這里我們填寫1500即可. 注意,x64Dbg此時的EIP必須也是OEP位置.如果不是在你LoardPe的時候dump的內存就是錯誤的 且修復可能不成功

  • 3.Get Imports 獲取導入表

    填寫好上面信息之后點擊獲取導入表即可.可以獲取相關導入表

    1. Fix Dump

      獲取導入表之后,針對我們剛剛LoardPe dump下的內存文件進行修復.

      修復好之后就可以正常啟動了

工具以及樣本: https://www.lanzous.com/iaymihg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM