Quote:
Originally Posted by ken12
Seems like this game uses WSASend rather than Send() only. Anyway Recv packets are useless. Detouring the encryption function is a good workaround. Just need to find the function address make assembly to it hook via detour of MS. Then call it.
An example would be like this.
static DWORD EncryptionAddress = 0x0000000;
void Encryption(int a1, int a2, DWORD a3, const char * a4);
{
___asm
{
push a4
push a3
push a2
push a1
Call EncryptionAddress
ADD ESP, 16 // CLean stacks
}
}
where a1 = size
a2 = sort of pointer
a3 = headers
a4 = packet you wanna send
those pushes and args will definitely be not like that. Just an example. :) Just giving out a clue for those who wanted to send packets to their own. Keep in mind that wrong packet might kick you out of the game or crash (especially wrong calling of arguments)
|
You don't even need to do that. you can just re-write the encryption and grab the initialized key/initialize your own key. you don't need to hook it.
and the game is not using WSASend after you actually log into one of the channels.
read my previous posts, the only two things the PE is hooking are WSAConnect and closesocket and it's working great.