Question from yuki [About Client]

11/21/2010 20:02 Syst3m_W1z4rd#1
Quote:
how to get the client version from a connected client
Don't ask me why, I don't know ><
11/21/2010 20:12 Kiyono#2
So why doesn't he ask it himself...?
11/21/2010 20:29 Basser#3
AFAIK, the client does not does send a packet containing the client version, so I doubt it is possible to get it any other way than modifying the client or doing something different client sided. I am not entirely sure it cannot be found in any packet though, 'cause if I remember correctly, 'The Warlords' (another TQ game) does send the client version in one of their authentication packets.
11/21/2010 20:58 Syst3m_W1z4rd#4
Quote:
Originally Posted by Kiyono View Post
So why doesn't he ask it himself...?
his banned and havent made a new account, so he asked if I would put the question :)
11/21/2010 21:17 Kiyono#5
Quote:
Originally Posted by Basser View Post
AFAIK, the client does not does send a packet containing the client version, so I doubt it is possible to get it any other way than modifying the client or doing something different client sided. I am not entirely sure it cannot be found in any packet though, 'cause if I remember correctly, 'The Warlords' (another TQ game) does send the client version in one of their authentication packets.
TQ did have some way to check for the client version, if you take a look at the actions table, you'll see that the mystic merchant script used something to determine the clients version.
11/21/2010 23:56 -impulse-#6
when client connects it sends server name to the server...just change the name of the server from server.dat to the version and you are done
11/21/2010 23:58 Korvacs#7
They added it once to encourage people to update the client and immediately removed it once people started abusing it, it was sent in the auth request packet somewhere i think.
11/22/2010 06:08 InfamousNoone#8
Inject a DLL into Conquer.exe
Have this DLL hook the auth-creation packet (the one with user,pass,etc)

Now assuming your running like 5095/+ the packet for this is HUGE.
You have a 128-byte field dedicated the name alone! So,
have your DLL insert the version # (read from version.dat) into the auth packet.

Process the version serverside -- good2go.
I'd recommend including a checksum unike TQ so people don't abuse it, lol.
11/25/2010 16:15 |NeoX#9
Basicly the cleint doesnt send its version to the server... so i can quit the idea of making an InterServer for 1.0 - 2.0

I wonder how you did that Hybrid.

Is there a way to "Guess" the version based on the incoming client packets?
11/25/2010 16:50 Basser#10
You could analyze all received data and try to 'reason' the version, however that would be very inaccurate.
11/25/2010 17:11 Korvacs#11
The best you could do was analyze the auth packet and determine based on its structure which range of client was incoming as bas says this would be fairly inaccurate, you wouldnt be able to see the difference between specific clients, just the ranges 4267/5017/5165/5200 etc, atleast thats probably the best you could do without dll inject as inf suggested.
11/25/2010 17:18 |NeoX#12
i might just figure out wich packets changed on each patch, so allowing to "scan" the client packets and then guess a version.... sounds like Client Close to me at this point :)

EDIT: The Auth Stage gets skipped. so i would need to do it at MapShow

DataPacket - 74

Maybe its possible to determine the clientversion at HotKey or Inv - Confirm and that stuff.
11/25/2010 17:26 Korvacs#13
Quote:
Originally Posted by |NeoX View Post
i might just figure out wich packets changed on each patch, so allowing to "scan" the client packets and then guess a version.... sounds like Client Close to me at this point :)

EDIT: The Auth Stage gets skipped. so i would need to do it at MapShow

DataPacket - 74

Maybe its possible to determine the clientversion at HotKey or Inv - Confirm and that stuff.
No, it has to be done at auth because the chat packet which is sent to the client at the beginning of the game login process changes everytime the client is changed.
11/25/2010 17:58 |NeoX#14
I see... goodbye easy way.

Thanks. can be closed^^
11/25/2010 17:59 |NeoX#15
I see... goodbye easy way.

Thanks. can be closed^^