|
論壇說明 | 標記討論區已讀 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2003-12-12, 01:21 PM | #1 (permalink) |
榮譽會員
|
:Regrun2 3.30 ASPR1。23脫殼文章
http://wycrack.51.net/learn/un_RegRun2.zib
下載完後改後面名為ZIP RegRun2 V3.30脫殼說明 大家如對這篇文章有不懂之處,請先看[DFCG]脫殼教學之aspr引入表修複篇.http://dfcg.9842.org/ ******************************************************************************** *****[Regrun2.exe的脫殼程序]***** ******************************************************************************** 1,用loader找到殼的入口點:OEP=00401000 2,在入口點dump下程式儲存為un_regrun2.exe 3,用W32dasm反編譯程式搜尋字串:jmp dword ptr [00 找到引入表的範圍在:0058a174,大小為:00000ec0h 4,在un_regrun2.exe中找一片全00地區。我找的是:005e3000,大小為:000017000h 5,執行[DFCG]的un_aspr1.0,在視窗中輸入0058a174和005e3000. 6,按確定.在出現第二個提示視窗的時候,記下正確的引入表入口點: 001e3108 . 用lordpe ,dump出0058a174後的ec0h字元資料和005e3000後的000017000h的資料. 儲存為0058a174~ec0.dmp和005e3000~17000.dmp文件. 7,用dump出的資料替換un_regrun2.exe中對應位址的資料. 8,改正引入表入口點為001e3108. 9,修複其他的幾個aspr特殊API.如下表: KERNEL32.DLL中的未修複函數: 0018a434 空函數 先讓其指向Getcommandlinea函數,以確保函數的連續性,但修改0053afe2處的指令為:RETN 04,如下: 0053AFDC $-FF25 30A45>JMP DWORD PTR DS:[<&KERNEL32.F>; kernel32.FreeLibrary 0053AFE2 $ C2 0400 RETN 4 0053AFE5 90 NOP 0053AFE6 90 NOP 0053AFE7 90 NOP 0053AFE8 $-FF25 38A45>JMP DWORD PTR DS:[<&KERNEL32.G>; kernel32.GetACP 0018a440 GetCommandLineA 0018a444 GetCurrentProcess 0018a448 GetModuleHandleA 0018a488 GetProcAddress 0018a518 空函數 先讓其指向Getcommandlinea函數,以確保函數的連續性,但修改0053b138處的指令如下: 0053B132 $-FF25 14A55800 JMP DWORD PTR DS:[<&KERNEL32.L>; kernel32.LocalFree 0053B138 $ C2 0400 RETN 4 0053B13B 90 NOP 0053B13C 90 NOP 0053B13D 90 NOP COMCTR32.DLL中的未修複函數: 0018a6bc InitCommonControls 結束語: 附上脫殼後再用upx1.20壓縮的regrun2.exe.其他的幾個程式也可用這種方法脫殼。引入表的需修複函數相似. -={完成}=- |
送花文章: 3,
|