- Joined
- Sep 10, 2007
- Messages
- 970
- Reaction score
- 815
So, since basically no one here understands the structure Gunz uses for it's packets I decided I would post a basic example.
Outline:
[header]
char - Version
short - Size + Header (8)
short - Checksum
short - Size of data
[/header]
[Data]
short - CommandID
char - PacketID
[Params]
[/Data]
So an example of a login packet would be:
[header]
char - 0x65 (Encrypted)
short - Size
short - Checksum
short - Size of data
[/header]
[Data]
short - 0x3E9
char - 0x1
short - 0x6 - UserName Len +0x0
string - "Phail" + 0x0
short - 0x4 - Password Len +0x0
string - "asd" + 0x0
DWORD - 0x56 - Cleitn Version
DWORD - 0x0 - FileList
struct *MD5 - MD5 of client
[/data]
Now, the crash Kore does is it makes the string len 0xFFFF(65535) which ends up crashing MatchServer because the length is too big. ;3
Also: 0x64 = Decrypted. 0x65 = Encrypted.
Outline:
[header]
char - Version
short - Size + Header (8)
short - Checksum
short - Size of data
[/header]
[Data]
short - CommandID
char - PacketID
[Params]
[/Data]
So an example of a login packet would be:
[header]
char - 0x65 (Encrypted)
short - Size
short - Checksum
short - Size of data
[/header]
[Data]
short - 0x3E9
char - 0x1
short - 0x6 - UserName Len +0x0
string - "Phail" + 0x0
short - 0x4 - Password Len +0x0
string - "asd" + 0x0
DWORD - 0x56 - Cleitn Version
DWORD - 0x0 - FileList
struct *MD5 - MD5 of client
[/data]
Now, the crash Kore does is it makes the string len 0xFFFF(65535) which ends up crashing MatchServer because the length is too big. ;3
Also: 0x64 = Decrypted. 0x65 = Encrypted.