我有這樣的代碼:如何通過MessageBox輸出指針?
extern "C" __declspec(dllexport) void getName(void)
{
char buf[20];
int slotNumber = 1;
DWORD tempdw;
DWORD hStorm_LOBBYPTR;
hStorm_LOBBYPTR = (DWORD)GetModuleHandleW(L"Storm.dll") + 0x1000 + 0x40000 + 0x8000;
__asm
{
PUSHAD
MOV EAX, DWORD PTR DS:[hStorm_LOBBYPTR]
TEST EAX, EAX
JE nick_false
MOV ECX, DWORD PTR DS:[EAX+0xC464]
TEST ECX, ECX
JE nick_false
MOV EAX, DWORD PTR DS:[ECX+0x170+0xB0]
TEST EAX, EAX
JE nick_false
MOV EDX, slotNumber
MOV ECX, DWORD PTR DS:[EAX+EDX*4]
MOV EAX, DWORD PTR DS:[ECX+0x1A0]
MOV ECX, DWORD PTR DS:[EAX+0x1E4]
MOV EAX, DWORD PTR DS:[ECX+0x1E4]
MOV ECX, DWORD PTR DS:[EAX+0x1E8]
MOV tempdw, ECX
POPAD
JMP nick_true
nick_false:
XOR EAX, EAX
MOV tempdw, EAX
POPAD
}
sprintf(buf,"%d", tempdw);
MessageBox(0, buf, "Dll Injector", MB_ICONEXCLAMATION | MB_OK);
tempdw
是一個指針,但是當我嘗試一下吧, 我有這種垃圾的消息框:
我應該怎麼辦?
對於初學者來說,使用'MessageBoxA',以確保您使用的ASCII版本。另外,通常使用'%0p'作爲指針的格式說明符。 –
你說'tempdw'是一個指針 - 你應該首先聲明它。 –
AFAIK,指針應該用「%x」格式化。 – Max