I am trying to log clientless...
Receved packet (S) - My response
(Ex. 0xA103 received by server, I send packet with opcode 0x7624)
0xA103 - 0x7624 (w/o any data, not encrypted)
0xb624 - 0x7625 (with data, not encrypted) That should be passcode
0xb625 - 0x7007 (with data, not encrypted) Requesting the character list
0xb007 - 0x7001 (with data, not encrypted) That should enter the game with selected character
After I send the packet 0x7001 I get DC... Sometimes I even get the response from server with packet 0xB001 but it always DC...
Packet structure:
Code:
case 0xA103: { StreamUtility & b = container.data; uint8_t success = b.Read<uint8_t>(); if (success == 1) { Inject(0x7624, false); // I don't know what is the purpose of this packet, but I saw with packet parser that client is sending it to the server... Maybe it is passcode request } }break; case 0xb624: // Server returns it with value 1 { StreamUtility m; m.Write<uint8_t>(2); // Enter the passcode (1 is change passcode... I guess) m.Write<uint16_t>(8); // Passcode length m.Write_Ascii("12345671"); // Passcode Inject(0x7625, m, false); // Injecting passcode packet }break; case 0xb625: // Passcode has been entered successfully so send the character list request { StreamUtility m; m.Write<uint8_t>(2); // Code for character list Inject(0x7007, m, false); // Injecting character list request packet }break; case 0xb007: // Returns character list, now have to enter the game with character { StreamUtility m; m.Write<uint16_t>(4); // Character name length m.Write_Ascii("test"); // Character name Inject(0x7001, m, false); // Injecting packet to enter the game with character test // After injecting that packet I am always disconnected }break; case 0xB001: // Response on the packet 0x7001 { // Received the packet 0xB001 } break;