npetrovski / l2js-client

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

Custom encryption #12

Closed blackyale closed 3 years ago

blackyale commented 3 years ago

Hello, first of all I want to thank you for your awesome work. I was wondering if this could be used in a server with custom encryption somehow.

I have seen they are using something custom in the protocol: Server send init packet (OK) Client send authgameguard packet (OK) Server send GGAuth packet (OK) Client send RequestAuthLogin (fail)

RequestAuthLogin size is normally 178 but in this case is 322 (I have seen that using a wine client from Ubuntu the size is 306)

Something interesting is that there's some fixed parts in the packet that never changes, but I haven't been able to retrieve more information. What do you think, would be possible?

npetrovski commented 3 years ago

Hi @blackyale , most of those private servers are using anti-bot software (GameGuard/SmartGuard), and these type of software are modifying the protocol by adding some additional encryption on top of the existing one or/and modifying some of the protocol packets (in your case RequestAuthLogin). It is really hard to find what exactly was modified for this specific server (+custom client) - you have to decompile and follow step-by-step what's the applied algorithm. On top of that you cannot do many tests, because the result from not providing to server the correct protocol packet value is an account (or/and IP) ban. I am not saying this is impossible, its just a lot of work :-)

npetrovski commented 3 years ago

closed due to inactivity