DLL 文件脫殼¶
這裏需要聯繫上篇的 手動查找IAT並使用ImportREC重建
例題文件你可以點擊此處下載: unpack_dll.zip
因爲Dll
脫殼需要這一步驟. Dll
脫殼的最關鍵的步驟在於使用LordPE修改其Dll的標誌
, 用LordPE
打開UnpackMe.dll
, 然後在特徵值那裏點擊...
, 然後取消勾選DLL
標誌, 保存後, 系統就會將該文件視作一個可執行文件.
我們將UnpackMe.dll
後綴名改成UnpackMe.exe
, 然後用OD載入.
一般在入口點, 程序都會保存一些信息, 這裏就很簡單, 只作了一個cmp
. 要注意的一點是, 這裏的jnz
跳轉直接就跳到了unpacking
過程的末尾. 因此我們需要修改寄存器的z
標誌來使得跳轉失效. 同時在unpacking
過程的末尾設下一個斷點以避免脫殼完然後直接運行.(程序會斷在這個斷點上, 但是脫殼已經完成, 代碼都很清晰)
Dll
脫殼的基本步驟跟exe
文件脫殼一樣, 而在重建IAT
時, 需要照着上篇 手動查找IAT並使用ImportREC重建 所說的那樣, 手動找到IAT
表並用ImportREC
進行重建. 只是要注意, 在脫殼完dump後, 要記得用LordPE把DLL
標誌恢復過來並將文件後綴名改爲.dll
.