!EP(EXE Pack)1.4.exe

首先查殼,顯示是!EP(EXE Pack)1.4.exe
在這裏插入圖片描述
根據查閱國外文獻資料,試運行,發現該殼重新運行創建了自己,有一定的反調試。就像下面的情況,F9執行程序,調試器直接中斷,程序還能正常運行。
在這裏插入圖片描述
於是在CreateProcessA和CreateProcessW函數處都下上斷點,果然斷住了。
在這裏插入圖片描述
在CreateProcessA處斷住,並且創建的進程仍然是自己,說明程序在解密完成後,直接重新創建了自己,所以在上面的je處下硬件執行斷點。因爲je上面全是解密過程,不能再je指令上下斷點,那時候還沒有解密完全。查閱資料瞭解到je是判斷是否有調試的關鍵跳轉,只要把je改爲jmp就可以讓程序直接正常運行。
接下來按照大佬的指示,將GetModulHandleA設置條件斷點,因爲je解密已經完成,接下來就該跳轉到解密後的程序EP,寶藍Delphi入口點程序格式如下。
在這裏插入圖片描述
在這裏插入圖片描述
如上圖可知入口點有個系統調用,這個系統調用前的格式取決於命令行是否輸入的參數。我們並沒有輸入參數所以第一個API調用一定是上面第一圖片的格式,在這個系統調用裏有個GetModulHandleA的函數調用。但是這個函數並不只有一次調用,想要精準定位就需要給該API斷點設置[esp+4]==0的條件,也就是參數爲0。
在這裏插入圖片描述
斷住後根據堆棧回溯,找到對應的入口點結構。根據國外大佬對的文獻解釋,找到殼的入口點,這裏OD出現瞭解析錯誤
在這裏插入圖片描述
根據寶藍Delphi入口點特徵,我們定位入口點爲0x958ec。
在這裏插入圖片描述
修復導入表
在這裏插入圖片描述
修復導入表後程序正常運行。
在這裏插入圖片描述

發佈了16 篇原創文章 · 獲贊 1 · 訪問量 1102
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章