HankTheDrunk / fluorescence

Automatically exported from code.google.com/p/fluorescence
GNU General Public License v3.0
0 stars 0 forks source link

Wrong protocol again.. #25

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Fluo sends paket 0xEF at login, but OSI sends packet

"0x80 - Account Login Request"

and at entering to world

"0x91 - Game Server Login"

for more detail see Wyat guide. The 0xEF is minor version packet and it's not 
correct to begin login with it. This handl'es RunUo encryption system. As for 
packet 0xEF it's seems to me it also is incoming from server, in this case 
client must to reply his version (I don't exactly remember but it's seems to me 
it's so)

Original issue reported on code.google.com by staticz@uoquint.ru on 16 Aug 2012 at 11:43

GoogleCodeExporter commented 9 years ago
Since 6.0.5.0, the client starts with EF instead of the old 4 byte seed. 

For the game server login, I changed it back to the old 4 byte seed, since the 
RunUO encryption appears to have a problem with the EF seed at game server 
login.

Original comment by spin@fluorescence-client.org on 17 Aug 2012 at 8:01

GoogleCodeExporter commented 9 years ago
Wow! Where you get this information??? It's realy sounds like nonsence, this is 
my packet log of classic client 7.0.16.3 from the begining (login to login 
server):

http://s42.radikal.ru/i095/1208/57/122fcec2fa0d.png

As you can see there is no any 0xEF packet at the login stage, but the main 
issue is that it's starts with 0x80 and 0x91 packets.

Original comment by staticz@uoquint.ru on 17 Aug 2012 at 10:03

GoogleCodeExporter commented 9 years ago
In my case it's seems that client use old 0xBD packet except of 0xEF, but as 
you see it send's it as answer for server response, soo if server asked 0xEF it 
must to send 0xEF.

Original comment by staticz@uoquint.ru on 17 Aug 2012 at 10:07

GoogleCodeExporter commented 9 years ago
The log you are showing is what happens after the client sent the encryption 
seed.
Before 6.0.5, this were only 4 bytes (usually the local IP address). Since 
6.0.5, this seed was extended to the 0xEF packet. 

See for example http://ruosi.org/publ/1-1-0-3, or the RunUO sourcecode of 
Network/MessagePump.cs::HandleReceive

Original comment by spin@fluorescence-client.org on 17 Aug 2012 at 10:18

GoogleCodeExporter commented 9 years ago
I'm sorry it's seems you are really right.. I don't know that SpyUo sniffer 
doesn't show this packet...

Original comment by staticz@uoquint.ru on 17 Aug 2012 at 10:26

GoogleCodeExporter commented 9 years ago
I found the problem - As you say client send 0xEF packet but only for login 
server, for game server it just send seed as befor 6.0.5. As for RunUO 
decryption system it's fine work with 0xEF packet at login server, the problem 
is only in using it at game server, but if osi don't use it - i think is better 
to do as OSI do...

Original comment by staticz@uoquint.ru on 17 Aug 2012 at 11:50

GoogleCodeExporter commented 9 years ago
Yes, you're right. That's what I meant in my first comment 
(http://code.google.com/p/fluorescence/issues/detail?id=25#c1).
I already changed the login seed for the game server back to the old version, 
but have not pushed the change to the google code repo yet. 

Original comment by spin@fluorescence-client.org on 17 Aug 2012 at 12:01