The way I've always looked at Conquer's packet structures is "What needs to be included in this packet?".
From that, I could do something like this for example with a Character Information packet, once I receive it I display it as a hex dump, then I'd check how much money I had; so lets say 5000, use the Microsoft Calculator (Scientific) to convert 5000 to hex (0x1388).
Then I'd think about the bitwise grouping, obviously I can have more than 255 (ff) gold, so money isn't one byte, you can have more than 65535 (ffff) so its more than 2 bytes, and Conquer rarely uses 64-bit integers, so it's probably a 32bit-integer, so basically 00001388. Lastly I'd reverse that value to 88 13 00 00, and look for that in my hex dump, once found I'd have the index of the value and presto.
Using common logic you can usually map out any Conquer packet's structure just thinking about what it would absolutely have...
Obviously there will be different names for the integer groups depending on the language the most common one's I've seen are
Byte, Byte, byte
Word, UInt16, ushort
DWord, UInt32, uint
QWord, UInt64, ulong
Ya, I know ulong is 32-bits in C++, and I don't know... well any of the integer groups in C++ so ya >_>
Conquer rarely if used at all uses signed integers (through the packets).
From that, I could do something like this for example with a Character Information packet, once I receive it I display it as a hex dump, then I'd check how much money I had; so lets say 5000, use the Microsoft Calculator (Scientific) to convert 5000 to hex (0x1388).
Then I'd think about the bitwise grouping, obviously I can have more than 255 (ff) gold, so money isn't one byte, you can have more than 65535 (ffff) so its more than 2 bytes, and Conquer rarely uses 64-bit integers, so it's probably a 32bit-integer, so basically 00001388. Lastly I'd reverse that value to 88 13 00 00, and look for that in my hex dump, once found I'd have the index of the value and presto.
Using common logic you can usually map out any Conquer packet's structure just thinking about what it would absolutely have...
Obviously there will be different names for the integer groups depending on the language the most common one's I've seen are
Byte, Byte, byte
Word, UInt16, ushort
DWord, UInt32, uint
QWord, UInt64, ulong
Ya, I know ulong is 32-bits in C++, and I don't know... well any of the integer groups in C++ so ya >_>
Conquer rarely if used at all uses signed integers (through the packets).