hey, also ich habe ein kleines problem, oder doch eher großes problem:o
arbeite gerade zum ersten mal mit hooks und so und hab versucht recv zu hooken,
also ich habe in einem spiel die recv funktion gehookt( glaube zumindest das ich das hab):D
z.b wenn ich mich einlogge sehe ich auch meine id/pw name etc.. andere namen die erscheinen kommen auch vor , aber am meisten ist da son müll drin
[Only registered and activated users can see links. Click Here To Register...]
sobald ich auf log in drücke kommen extreeeeem viele recv an ( ka ob soviel normal ist xD und dann nach mehreren sekunden stoppts einfach und nix kommt mehr...
hier meine funktionen die ich benutze
BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
{
if (reason == DLL_PROCESS_ATTACH)
{
Console();
RecvAddr = (DWORD)GetProcAddress(GetModuleHandleA("ws2_32.dll "), "recv");
cout << hex << RecvAddr; // nur zum checken ob die richtige adresse kam :D
oDraw2D = (tDraw2D)DetourFunction((BYTE*)RecvAddr, (BYTE*)&Draw2D, 5);
}
return 1;
}
// ka ob man das was jetzt kommt so machen kann wie ich das jetzt gemacht habe xD
typedef int(__stdcall *tDraw2D)(SOCKET Socket, char *Buffer, int Length, int Flags);
tDraw2D oDraw2D = NULL;
void Draw2D(SOCKET Socket, char *Buffer, int Length, int Flags)
{
__asm PUSHAD;
for (int i = 0; i < Length; i++)
{
cout << Buffer[i];
printf(" ");
}
printf("\n");
__asm POPAD;
oDraw2D(Socket,Buffer,Length, Flags );
}
//und hier die detour function die ich aus einem tutorial ausm internet habe
void *DetourFunction(BYTE *orig, BYTE *hook, int len)
{
DWORD dwProt = 0;
BYTE *jmp = (BYTE*)malloc(len + 5);
VirtualProtect(orig, len, PAGE_READWRITE, &dwProt);
memcpy(jmp, orig, len);
jmp += len; // increment to the end of the copied bytes
jmp[0] = 0xE9;
*(DWORD*)(jmp + 1) = (DWORD)(orig + len - jmp) - 5;
memset(orig, 0x90, len);
orig[0] = 0xE9;
*(DWORD*)(orig + 1) = (DWORD)(hook - orig) - 5;
VirtualProtect(orig, len, dwProt, 0);
return (jmp - len);
}
ich bitte um hilfe ^^
arbeite gerade zum ersten mal mit hooks und so und hab versucht recv zu hooken,
also ich habe in einem spiel die recv funktion gehookt( glaube zumindest das ich das hab):D
z.b wenn ich mich einlogge sehe ich auch meine id/pw name etc.. andere namen die erscheinen kommen auch vor , aber am meisten ist da son müll drin
[Only registered and activated users can see links. Click Here To Register...]
sobald ich auf log in drücke kommen extreeeeem viele recv an ( ka ob soviel normal ist xD und dann nach mehreren sekunden stoppts einfach und nix kommt mehr...
hier meine funktionen die ich benutze
BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
{
if (reason == DLL_PROCESS_ATTACH)
{
Console();
RecvAddr = (DWORD)GetProcAddress(GetModuleHandleA("ws2_32.dll "), "recv");
cout << hex << RecvAddr; // nur zum checken ob die richtige adresse kam :D
oDraw2D = (tDraw2D)DetourFunction((BYTE*)RecvAddr, (BYTE*)&Draw2D, 5);
}
return 1;
}
// ka ob man das was jetzt kommt so machen kann wie ich das jetzt gemacht habe xD
typedef int(__stdcall *tDraw2D)(SOCKET Socket, char *Buffer, int Length, int Flags);
tDraw2D oDraw2D = NULL;
void Draw2D(SOCKET Socket, char *Buffer, int Length, int Flags)
{
__asm PUSHAD;
for (int i = 0; i < Length; i++)
{
cout << Buffer[i];
printf(" ");
}
printf("\n");
__asm POPAD;
oDraw2D(Socket,Buffer,Length, Flags );
}
//und hier die detour function die ich aus einem tutorial ausm internet habe
void *DetourFunction(BYTE *orig, BYTE *hook, int len)
{
DWORD dwProt = 0;
BYTE *jmp = (BYTE*)malloc(len + 5);
VirtualProtect(orig, len, PAGE_READWRITE, &dwProt);
memcpy(jmp, orig, len);
jmp += len; // increment to the end of the copied bytes
jmp[0] = 0xE9;
*(DWORD*)(jmp + 1) = (DWORD)(orig + len - jmp) - 5;
memset(orig, 0x90, len);
orig[0] = 0xE9;
*(DWORD*)(orig + 1) = (DWORD)(hook - orig) - 5;
VirtualProtect(orig, len, dwProt, 0);
return (jmp - len);
}
ich bitte um hilfe ^^