The coding part is:
- Creating a Packet sniffer(usefull if you want to get data from the server)
- Decrypting the network packet encryption
-- If the network packet is hard to decrypt, first thing you do is todisable encryption from your client
-- if you want to decrypt incoming packets from the server, hook / use the client to sniff the packets after they are decrypted
- Creating a network server
- You have to redirect your client to connect to your server
-- Finding how Launcher starts the client
-- Finding the client connection Info
--- If the connection info is on an unencrypted file you can simply change them
--- If the connection is on an encrypted file, fild how the client reads / decrypts the file and create a tool to edit that file
--- if the connection is hard-coded into the client, you can edit the client, or hook some unprotected dependency of the client, to edit the connection info
- You also have to deactivate the client protections
-- Edit the client to deactivate its protections(hackshields)
- Translating and handling the network packets
- To achieve the step you need documentation on the network packet, a leaked server or figure out what the network packets do(by sending network packets to the clilent, and responding to then with the packets sniffed).
Besides this, some games have UDP Heartbeats, used to check if the client is online(will send periodically a network packet)
For example:
- Clent sends login message to server
- server receives the login messege, and handles it
- server sends back a response(Login OK - send Game Server Data or Login Failed - Please Try again)
- Client receives the Response from server and handles it(if it is Login OK will connect to the GameServer, if it Is Login Failed, will do nothing),
As Tools you need:
- A high level programming language
- A Hex Editor good for analyzing binary files
- A network sniffer(you can code in Your programming language, or code a simple FileWritter, and hook the client to dump the receiving packets), or use Wireshark if you know how to decrypt the packets.
- A Debugger(OllyDBG or IDA)