I just spent half an hour or so writing a reply -- and got an error when I sumbitted, aparantly I'd been logged out.
Anyway, the gist of it was that understanding game networking in general is important, after that, reverse engineer (decompile, deobfuscate if appropriate) the client, look for recognisable text strings for context, look for networking system calls, etc. Here are some links relevant to the first
bit:
http://gafferongames.com/building-a-game-network-protocol/
http://gafferongames.com/networking-for-game-programmers/
https://www.indiegogo.com/projects/development-deployment-of-multiplayer-games-vol1-book-online/#/
A PDF of the beta of the above:
http://ithare.com/wp-content/uploads/beta-vol1.pdf
I've been playing with my own project of this sort for just over a year, my server implementation is about 10k lines of rust (including parsers for some of the game's file formats, it's bitpacked serialisation, implementations of it's multiple levels of ARQ (optional per packet and per event
group), it's own file server, and so on), and is getting close to something people could actually use. I had a nice shortcut in that the client is written in java, which decompiles well, though still took many months to deobfuscate and understand it's implementation of the protocol. It's certainly
enjoyable though, and I expect someone with more experience would make faster progress than I have :3
Good luck & have fun ^^