0x001 设置环境
eq 8003f048 0040EC03`00081030
0x002 测试代码
#include <windows.h> #include <stdio.h> DWORD x; DWORD y; DWORD z; void __declspec(naked) GateProc() { __asm{ pushad pushfd mov eax,[esp+0x24+0x8+0x8] mov DWORD ptr ds:[x],eax mov eax,[esp+0x24+8+4] mov DWORD ptr ds:[y],eax mov eax,[esp+0x24+8+0] mov DWORD ptr ds:[z],eax popfd popad retf 0xC //平衡堆栈 写错蓝屏 } } void PrintRegister() { printf("%x %x %x \n",x,y,z); } int main(int argc, char* argv[]) { _asm{ mov eax,eax mov eax,eax } char buff[6]; *(DWORD*)&buff[0]=0x12345678; *(WORD*)&buff[4] = 0x48; __asm { push 1 push 2 push 3 call fword ptr[buff] } PrintRegister(); getchar(); return 0; }
0则评论给“调用门测试(三) 参数传递”