Hi folks,
I am a curious novice with C ++, but I managed to create my own dll and enter it in my gameserver.exe file
Well, I tried a few days to hook on a custom call function, but I always fail, because it belongs to the assembly :(
I would like you guys to show me how I write the correct lines for this function:
0048C1AF |. 8B9B 4C010000 MOV EBX,DWORD PTR DS:[EBX+14C]
0048C1B5 |. 8B13 MOV EDX,DWORD PTR DS:[EBX]
0048C1B7 |. 8B82 EC000000 MOV EAX,DWORD PTR DS:[EDX+EC]
0048C1BD |. 8BCB MOV ECX,EBX
0048C1BF |. FFD0 CALL EAX
0048C1C1 |. 8BF8 MOV EDI,EAX
0048C1C3 |. E8 789EF8FF CALL SR_GameS.00444040
0048C1C8 |. 8B7C24 1C MOV EDI,DWORD PTR SS:[ESP+1C]
0048C1CC |. 8BF0 MOV ESI,EAX
0048C1CE |. E8 6D9EF8FF CALL SR_GameS.00444040
What I wrote in C ++ so far:
void __cdecl Global()
{
__asm
{
mov msg, edi;
push ebx;
mov ebx, dword ptr[esp+1C];
mov playername, ebx;
pop ebx;
}
printf("Global [%s] -> %s\n", playername, msg);
CALL((DWORD)0x00444040);
}
when 0048C1CE is ever called, I get it in my C ++ and move it to global () until everything stops here, but inside Global () I cannot call back the parameters successful in x00444040, even if they display strange values in console window and sometimes show part of the player’s message.
P.S. , , .
, .