Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Reversing Client and buiding a server from it

Joined
Mar 9, 2012
Messages
38
Reaction score
16
So, how do I start reversing this client to make a server? Do I need to capture the database requests and build a database based on the requests? I think that probably this go way further. Can you help me?

Can you give some examples?

Thanks everyone.
 
Initiate Mage
Joined
Aug 14, 2015
Messages
79
Reaction score
18
I don't think the client would have anything to do with a database. I've asked similar questions before and the answer I got were something along: "Start from where recv/send(or sometimes WSA.. versions) is called and try to find where the packets are serialised/deserialised."

Obviously depending on the game that can be very difficult. If there's an active server you could gather and reverse packets using that server which is what I ended up doing. IMO, packets aren't the biggest issue while writing an emulator. Writing production quality software(especially when you're aiming to serve thousands of clients) is quite hard.
 
Joined
Mar 9, 2012
Messages
38
Reaction score
16
problem is that this is very old version of the game (The best one) i think i have found the server address. i seen those send/recv and WSA
but so far i don't really know what im doing at all...
Seems there is loginServer then World server something like that ...

Vorlian - Reversing Client and buiding a server from it - RaGEZONE Forums




Update, i found where client is connecting to Login Server and then Game Server, So once its connected its loading LoginData.Dat file where you write logging details , but i cant find the Game server.
aslo when connect to login server seems to check for version of the game then start to update if needed.
 
Last edited:
Junior Spellweaver
Joined
Jun 14, 2015
Messages
123
Reaction score
20
More updates

I'm guessing you're getting the ffff... stuff in your packet logging because you're printing signed chars, you need to convert them to unsigned char before printing.

But yeah, you seem to be getting the hang of it otherwise. ^__^
 
Initiate Mage
Joined
Aug 14, 2015
Messages
79
Reaction score
18
Some games(probably most games) send game server credentials using the login server(in my case, it was when you selected a character). That could be the case for your game as well. If you click on top of 'recv' and press X it'll show you where that function is called. Once you found where recv is called you can keep following that routine and hopefully find out where packets are being parsed. It's also possible that packets are parsed else where which could make things a bit harder.
 
Joined
Sep 27, 2006
Messages
557
Reaction score
88
What game is this for?

To be able to build a emulator without server side packets you would have to debug the packet from the client structure or from the "CASE" they use to grab the packet header and start sending data back base on that. While debugging more you can also find in the client where size and other data is checked. But a lot of trial and error.
 
Joined
Mar 9, 2012
Messages
38
Reaction score
16
Game is called Dransik. Well there is live server but its very very first version of the game (itle by title graphics.. got few people helping out...Would be nice if some more people join the project... would make this quicker :)
 
Back
Top