?? pespin 1.3 beta2.txt
字號:
/////////////////////////////////////////////////////////// Unpack PESpin v1.3 Beta2 unpackme// By softworm 6/6/2005//// Run as a single process,reach the dump address,fixes some // replaced code(call into the virtual address space ) and// Nanomites.// Run the fixer.exe(No GUI available,replace the PID and recompile // it;-) to fix the replaced codes pointing to the PE header when // finished the script.var nCountervar addrvar currOpcodevar calleevar iatdbhbphws 4089F7, "x"runbphwc 4089F7 // call CreateMutexA后mov eax,0stostostostomov eax,0B7 // 修改GetLastError返回為ERROR_ALREADY_EXISTS///////////////////////////////////////////////////////////////1. 00408A5E int 1// 父進程只修改了eip->408A7Dbphws 408A5E, "x"runbphwc 408A5Emov eip,408A7D/////////////////////////////////////////////////////////////////// 2. 004075C2 int3 SoftIce后門指令// 在softice未激活時,跳過就可以了bphws 4075C2, "x"runbphwc 4075C2inc eiprun// 注意這里有另外的異常:004075CA lea eax,eax// 是由線程自己的SEH處理的,不用管,從log可以看出,father下一個介入點// 在407663////////////////////////////////////////////////////////////////// 3. 00407663 sub dword ptr ds:[edx],eax// child自己處理//bphws 407663, "x"esto//bphwc 407663bp 407B75 // 407663處異常的handlerestobc eip ////////////////////////////////////////////////////////////////// 4. 00405481 div ebx// child自己處理runesto///////////////////////////////////////////////////////////// 5. 00405500 repe scas byte ptr es:[edi]// child自己處理esto// 6. 004056AC div blesto// 7. 00407D0B sti// child自己處理// 注意在child斷到這里時,esi->"\\.\SICE",還會檢測SoftIceesto// 8. 00407D0B sti(第2次)// child自己處理esto// 9. 00407CCF xlat byte ptr ds:[ebx+al]// child自己處理esto// 10. 00407872 xlat byte ptr ds:[ebx+al]// child自己處理esto// 11. 00405A43 mov dword ptr ds:[eax],ebx// child自己處理esto//////////////////////////////////////////////////////////////////////////////// 12. 00400161 FFFF ??? ; Unknown command// child自己處理esto// 13. 00408037 int3bphws 409242, "x"esto// 14. 00409242 int1 // 00409243 xchg edi,ebx// 修改child的eip->40926Cbphwc 409242mov eip,40926Clog "get apis now"// 在殼內(nèi)(409803)保存真正的api地址,而不是動態(tài)分配內(nèi)存// 的地址(指向抽取的api入口碼)bp 406790 // eax->apibp 405FCD // 保存api地址bphws 406AB2, "x" // dump點eob lbl_get_apieoe lbl_get_apirunlbl_get_api: cmp eip,406790 jne lbl_save mov addr,eax mov [edx],eax // 把api地址保存回原iat,下面修復(fù)call代碼需要 log addr jmp lbl_continue lbl_save: cmp eip,405FCD jne lbl_dump mov eax,addr log edi lbl_continue: estolbl_dump: bphwc 406AB2 bc 406790 bc 405FCD cob coe // 修復(fù)replaced code全部放到Fix內(nèi) // 下面patch Nanomites,使程序能以單進程方式運行 asm 401B13, "mov eax,[eax]" asm 401B25, "jnz 401B33" asm 401C72, "jnz 401C7D" asm 401B82, "mov esi,[eax]" asm 401B8A, "jnz 401BC6" asm 401B94, "jz 401B9A" asm 401B98, "jnz 401B8C" asm 401B9D, "jnz 401BA3" asm 401BA7, "jz 401BAD" asm 401BBE, "jz 401BD1" // 下面7個為沒有實際執(zhí)行到的 // asm的opcode錯誤,用mov //asm 401BEE,"mov eax,[ebp-14]" //asm 401BF1,"mov ecx,[eax]" //asm 401BF3,"mov ecx,[ecx]" mov [401BEE],#8B45EC8B088B0989# //asm 401C02,"mov esp,[ebp-18]" mov [401C02],#8B65E8FF# //asm 401CC0,"mov ecx,[ebp-10]" mov [401CC0],#8B4DF0E9# //asm 401D50,"mov ecx,[ebp-10]" mov [401D50],#8B4DF0E9# //asm 401D70,"mov ecx,[ebp-10]" mov [401D70],#8B4DF0E9# msg "Run fix and dump it;-)" ret
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -