pespin 1.3 beta2.txt

来自「700个脱壳脚本, 可以放在在OD的ollyscript Plugin中.」· 文本 代码 · 共 227 行

TXT
227
字号
/////////////////////////////////////////////////////////// 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"// 在壳内(409803)保存真正的api地址,而不是动态分配内存// 的地址(指向抽取的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,下面修复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	// 修复replaced code全部放到Fix内	// 下面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个为没有实际执行到的	// 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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?