npetrovski / l2js-client

JavaScript client for Lineage 2
MIT License
105 stars 34 forks source link

Protocol 746 #22

Closed ZigmundL closed 2 years ago

ZigmundL commented 3 years ago

Hello. No Gameguard server. I'm okay with login, but when I connect to gameserver the packets are broken partly decrypted like 2 bytes are missing. Say2 screw 2 bytes every 16 bytes. so the message "username: 11111111" becomes smth like like "user└ame: 1111,┼111 or something. X and Z are fine but Y looks messed up (unreal value). So how to use this https://github.com/npetrovski/l2js-client/blob/master/src/security/crypt/GameCrypt.ts properly? Is there any other key for Interlude c6? or Interlude Classic?

npetrovski commented 3 years ago

This sounds like a server-specifics - maybe the GS has been customized a bit. I don't believe the key is the problem here (otherwise you would see total gibberish). I would suggest you inspect the packet size and try to find where those 2 bytes are mistaken - just play a bit with the process() method here:

https://github.com/npetrovski/l2js-client/blob/master/src/mmocore/MMOClient.ts#L84

npetrovski commented 3 years ago

..also, for Interlude I have the following key you can try as well:

5F 3B 76 2E 5D 30 35 2D 33 31 21 7C 2B 2D 25 78 54 21 5E 5B 24 00

ZigmundL commented 3 years ago

Server is bot free. l2walker connects to it and works. This happens only with gameCrypt and only with 2 bytes every 16. So not everything is messed, some data is present most of time enough to login. I'm decrypting every packet just like this, slice packet_len-2 bytes and decrypt, but Say2 looks like I posted before. Thanks for the key, I suppose it is for login, but I'm okay with login, and even joining server. not okay after I receive KeyInit packet, the next comes encrypted charInfo and it s already fucked up