Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 08:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



c++ recv hook

Discussion on c++ recv hook within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Luôô's Avatar
 
elite*gold: 5
Join Date: Dec 2009
Posts: 1,080
Received Thanks: 434
c++ recv hook

Hey,

ich hab mir einen recv, send hook gebastelt.
Die Send funktion funktioniert einwandfrei aber die recv funktion leitet die packete nachdem loggen nicht mehr weiter.
Wenn ich die logging funktion bei der recv funktion austelle geht es einwandfrei.
Code:
int WINAPI  XRecv(SOCKET Socket, char *Buffer, int Length, int Flags) 
{
	char *Buf = Buffer;
   	int leng = Recv(Socket, Buf, Length, Flags);
   	if (leng > 0)
   	{
		PacketCryption(Buf, leng);
		WriteLogRecv(Buf, leng);
	}
	return leng;
}

void WriteLogRecv(char* MSG, int Lenght)
{
	FILE * logfile;
	if((logfile=fopen("C:\\RecvLog.LOG", "a+")) != NULL)
	{
		time_t secs=time(0);
		tm *t=localtime(&secs);
		fprintf(logfile, "[RECV] :: %i >> %04d-%02d-%02d %02d:%02d:%02d >> ", Lenght, t->tm_year+1900,t->tm_mon+1,t->tm_mday, t->tm_hour,t->tm_min,t->tm_sec);
		for(unsigned int i = 0; i < Lenght; i++)
		{
			fprintf(logfile, "0x%02x, ", (BYTE)MSG[i]);
		}
		fprintf(logfile, "\n");
		fclose(logfile);
	}
}

Recv = (int (WINAPI  *)(SOCKET, char *, int, int))DetourFunction((PBYTE)GetProcAddress(GetModuleHandle(L"ws2_32.dll"), "recv"), (PBYTE)XRecv);
Ich hoffe ihr könnt mir helfen
Luôô is offline  
Old 07/22/2013, 18:00   #2
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
mmh sieht eigtl soweit korrekt aus, was machste denn in "PacketCryption"?

EDIT:
Quote:
int Lenght
hihi
Dr. Coxxy is offline  
Old 07/22/2013, 18:07   #3
 
Luôô's Avatar
 
elite*gold: 5
Join Date: Dec 2009
Posts: 1,080
Received Thanks: 434
simple byte verschiebung die ist aber auch richtig die benutze ich ja auch bei der send.
Es liegt an der log funktion. Egal welche Log Funktion/Klasse ich benutze
Luôô is offline  
Old 07/22/2013, 18:33   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Debuggen.
Schlüsselbein is offline  
Old 07/22/2013, 18:37   #5
 
Luôô's Avatar
 
elite*gold: 5
Join Date: Dec 2009
Posts: 1,080
Received Thanks: 434
Die Pakete kommen ja im log an. Kann es sein das die Log Funktion zu lange dauert und somit der Client ein TimeOut gibt?
Luôô is offline  
Old 07/22/2013, 18:40   #6
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Nein.
Debuggen -> schaun, ob er überhaupt die originale recv-Funktion aufruft und ob die übergebenen Daten alle passen

Padmak
Padmak is offline  
Old 07/22/2013, 19:29   #7
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by Luôô View Post
simple byte verschiebung die ist aber auch richtig die benutze ich ja auch bei der send.
Es liegt an der log funktion. Egal welche Log Funktion/Klasse ich benutze
dir ist klar, dass du wenn du den buffer decryptest und nach dem loggen deine änderungen des packets nicht wieder rückgängig machst, dass dann die originalanwendung versuchen wird den bereits decrypteten buffer nochmals zu decrypten, was wahrscheinlich ziemlich in die hose gehen wird?
(zmdst wenn du und das programm das tun was ich denke, deswegen auch die frage was du in packetcryption machst.)
Dr. Coxxy is offline  
Thanks
1 User
Old 07/22/2013, 21:46   #8
 
Luôô's Avatar
 
elite*gold: 5
Join Date: Dec 2009
Posts: 1,080
Received Thanks: 434
Hab ich mir auch schon gedacht aber nein hab es auch schon wieder gecryptet.
Ich kann entweder nur loggen oder nur decrypten. Sonst kommen die Packet zu spät oder so an und ich kann nicht einloggen
Luôô is offline  
Old 07/22/2013, 22:19   #9
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by Luôô View Post
Hab ich mir auch schon gedacht aber nein hab es auch schon wieder gecryptet.
Ich kann entweder nur loggen oder nur decrypten. Sonst kommen die Packet zu spät oder so an und ich kann nicht einloggen
kann ich mir nicht vorstellen.
versuch mal den buffer encrypted zu loggen, also ohne etwas zu de oder/und encrypten.

was soll eigtl. das:
Code:
char *Buf = Buffer;
kannst doch direkt den übergebenen pointer benutzen?
wird dir der compiler zwar rausoptimieren, aber trzd. eigtl unnötig.
Dr. Coxxy is offline  
Old 07/22/2013, 23:14   #10
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Kopier doch das empfangene in einen neuen Buffer, decrypte das und logg es dann mit.
Wenn das auch nicht geht, debuggen!

Padmak
Padmak is offline  
Reply


Similar Threads Similar Threads
[request] alissafix with recv hook
06/27/2013 - Mabinogi - 62 Replies
can anyone fix the recv hook problem for alissa? thanks in advance
[Question] Recv hook
01/10/2013 - Kal Online - 3 Replies
I'm having a bit weird problem with that. I've managed to hook recv function directly in winsock dll and i can sniff the data being exchanged between client and server. I guess that they are encrypted because i didn't hook recv in engine exactly but in dll. In main thread: RealRecv = (RecvPtr)GetProcAddress(GetModuleHandle(L"ws2 _32.dll"), "recv"); RealRecv = (RecvPtr)Detour((BYTE*)RealRecv, (BYTE*)&OurRecv, 5); OurRecv func: INT WINAPI OurRecv(SOCKET sock, CHAR* buf, INT len, INT...
[C++]Hook all Recv function Problem
08/21/2010 - C/C++ - 5 Replies
Hi Leute wenn ich send hooke egal welches läuft das alles super nur wenn ich irgendein recv hooke habe ich immer eine Packet size von 1000 bis 10000. sry das ich schon wieder nerve #include "WinSock2.h" #include <cstdio> #include <ctime> #include <fstream> #include <iomanip>
[Help]HackShield detected send,recv hook c++
08/17/2010 - C/C++ - 6 Replies
Entschuldigung für noch einen Thread am selben Tag aber das passt glaub ich nicht wirklich in das andere deswegen eröffne ich einen neuen. Wenn ich die Winsock send recv hooke detected das Hackshield nach ca. 2 minuten einen hack kann man das Bypassen ? Und wenn ja,wie sollte ich anfangen. Würde mich freuen auf eine Antwort. Mit freundlichen Grüßen :)



All times are GMT +1. The time now is 08:29.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.