跳转至

DLL 文件脫殼

這裏需要聯繫上篇的 手動查找IAT並使用ImportREC重建

例題文件你可以點擊此處下載: unpack_dll.zip

因爲Dll脫殼需要這一步驟. Dll脫殼的最關鍵的步驟在於使用LordPE修改其Dll的標誌, 用LordPE打開UnpackMe.dll, 然後在特徵值那裏點擊..., 然後取消勾選DLL標誌, 保存後, 系統就會將該文件視作一個可執行文件.

12.png

我們將UnpackMe.dll後綴名改成UnpackMe.exe, 然後用OD載入.

13.png

一般在入口點, 程序都會保存一些信息, 這裏就很簡單, 只作了一個cmp. 要注意的一點是, 這裏的jnz跳轉直接就跳到了unpacking過程的末尾. 因此我們需要修改寄存器的z標誌來使得跳轉失效. 同時在unpacking過程的末尾設下一個斷點以避免脫殼完然後直接運行.(程序會斷在這個斷點上, 但是脫殼已經完成, 代碼都很清晰)

Dll脫殼的基本步驟跟exe文件脫殼一樣, 而在重建IAT時, 需要照着上篇 手動查找IAT並使用ImportREC重建 所說的那樣, 手動找到IAT表並用ImportREC進行重建. 只是要注意, 在脫殼完dump後, 要記得用LordPE把DLL標誌恢復過來並將文件後綴名改爲.dll.