Jump to content
GreenBox

r16771: Client MD5 Hash Check

Recommended Posts

Actually that's the purpose of this hash checking to prevent them from using other hexed client. Did I get your point? /hmm

Link to comment
Share on other sites

Theoretically you can hook CLoginMode::GetClientHash, as it takes only one parameter as the pointer for where to store the hash you can do whatever you like with those 16 bytes.

For 2012-04-10RagexeRE this is it signature:

.text:0077E1B0 ; bool __stdcall CLoginMode__GetClientHash(char *destMd5)
.text:0077E1B0 [email protected]@@AAEXXZ proc near
.text:0077E1B0										 ; CODE XREF: CLoginMode::CheckExeHashFromAccServer(void)+43p
.text:0077E1B0
.text:0077E1B0 this			= MD5 ptr -560h
.text:0077E1B0 Filename		= byte ptr -508h
.text:0077E1B0 DstBuf		  = byte ptr -404h
.text:0077E1B0 var_4		   = dword ptr -4
.text:0077E1B0 digest		  = dword ptr  4

.text:0077E1B0                 sub     esp, 560h
.text:0077E1B6                 mov     eax, dword_8F1A20
.text:0077E1BB                 xor     eax, esp
.text:0077E1BD                 mov     [esp+560h+var_4], eax
.text:0077E1C4                 push    ebp
.text:0077E1C5                 mov     ebp, [esp+564h+digest]
.text:0077E1CC                 push    esi
.text:0077E1CD                 lea     ecx, [esp+568h+this] ; this
.text:0077E1D1                 call    MD5__MD5
.text:0077E1D6                 mov     ecx, g_hInstance
--------------------------------------------------------

bool __stdcall GetClientHash(char *destMd5)
{
 FILE *v1; // [email protected]
 FILE *v2; // [email protected]
 int v3; // [email protected]
 bool result; // [email protected]
 MD5 this; // [sp+8h] [bp-560h]@1
 char Filename; // [sp+60h] [bp-508h]@1
 char DstBuf; // [sp+164h] [bp-404h]@3
 unsigned int v8; // [sp+564h] [bp-4h]@1

 v8 = (unsigned int)&this ^ dword_8F1A20;
 MD5::MD5(&this);
 GetModuleFileNameA(g_hInstance, &Filename, 0x104u);
 v1 = fopen(&Filename, "rb");
 v2 = v1;
 if ( v1 )
 {
if ( !feof(v1) )
{
  do
  {
	v3 = fread(&DstBuf, 1u, 0x400u, v2);
	MD5::Update(&this, &DstBuf, v3);
  }
  while ( !feof(v2) );
}
MD5::Finish(&this, destMd5);
result = 1;
 }
 else
 {
result = 0;
 }
 return result;
}

Link to comment
Share on other sites

hmmm ill try it later. i hope it will work :D

Why not? It can regenerates MD5 signatures with a click of button.

its not working. even i use diff client_hash. the other client can still connect to the server.

Link to comment
Share on other sites

Have you rechecked your group_id and the hash in login_athena.conf?

Try to put a different group_id in it and login with another client.

Use different clients with different MD5 signature for each group_id.

Link to comment
Share on other sites

Have you rechecked your group_id and the hash in login_athena.conf?

Try to put a different group_id in it and login with another client.

Use different clients with different MD5 signature for each group_id.

if you include this to your diff. WDGForceClientHashPacket.dll it will force you to use only 1 client hash. and if you enable to use hash_check there is no other way to connect to the server unless you include the WDGForceClientHashPacket.dll on your client diff. which means you can't modified the client hash.

Link to comment
Share on other sites

works great but if i use different client it says my client is not latest or something. how can you change that to something else?

Link to comment
Share on other sites

works great but if i use different client it says my client is not latest or something. how can you change that to something else?

make sure that different client include this WDGForceClientHashPacket.dll on his diff. or else it cannot connect to the server if the client_hash_check is on

Link to comment
Share on other sites

works great but if i use different client it says my client is not latest or something. how can you change that to something else?

make sure that different client include this WDGForceClientHashPacket.dll on his diff. or else it cannot connect to the server if the client_hash_check is on

what i mean is i want to change the "error" that client given if they're using different client.

Link to comment
Share on other sites

works great but if i use different client it says my client is not latest or something. how can you change that to something else?

make sure that different client include this WDGForceClientHashPacket.dll on his diff. or else it cannot connect to the server if the client_hash_check is on

what i mean is i want to change the "error" that client given if they're using different client.

It's somewhere in msgstringtable.txt

Link to comment
Share on other sites

how to reconfigure this client hash?..

i also want to know where to edit if i want other hash code in hex??..

is there a complete guide for this?..

guide on how to set up a new hex code of md5 hash?

Link to comment
Share on other sites

how to reconfigure this client hash?..

i also want to know where to edit if i want other hash code in hex??..

is there a complete guide for this?..

guide on how to set up a new hex code of md5 hash?

i think there is no other way to change the md5 hash code.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.