Where to begin?

01/31/2018 03:40 s1cko#1
I am interested in creating my own source. I know Java and C++ but am willing to learn any language. I'm not looking to open up my own server anytime soon or anything like that. I just want to know how to start creating my own source.
01/31/2018 05:25 Spirited#2
Quote:
Originally Posted by s1cko View Post
I am interested in creating my own source. I know Java and C++ but am willing to learn any language. I'm not looking to open up my own server anytime soon or anything like that. I just want to know how to start creating my own source.
Probably start by downloading a source (COPS v7 is in QT C++ and clean to read). You can also check the dev wiki for algorithms and packet structures, and contribute to it if you'd like. All stickied at the top of sections, packet tutorial in my signature and stickied to the CO2 programming section. Etc.
02/02/2018 06:55 s1cko#3
Quote:
Originally Posted by Spirited View Post
Probably start by downloading a source (COPS v7 is in QT C++ and clean to read). You can also check the dev wiki for algorithms and packet structures, and contribute to it if you'd like. All stickied at the top of sections, packet tutorial in my signature and stickied to the CO2 programming section. Etc.
What I'm looking for is an "big picture" overview about how the client and server work. From what I understand, the clients are usually not hacked but the source is pretending to be an official CO server and communicates with the client via packets.

If this is correct, I guess the place to start would be to understand how the client connects to the server and start from there.
02/02/2018 18:30 Xio.#4
Quote:
Originally Posted by s1cko View Post
What I'm looking for is an "big picture" overview about how the client and server work. From what I understand, the clients are usually not hacked but the source is pretending to be an official CO server and communicates with the client via packets.

If this is correct, I guess the place to start would be to understand how the client connects to the server and start from there.
Client connects to port 9958 (old patches; 9960 in newer ones*) using TCP. That's the Login/Auth server.

Implement the crypto for the version you target ([Only registered and activated users can see links. Click Here To Register...])

Then simply check the packets ([Only registered and activated users can see links. Click Here To Register...])

Without looking at a reference project you'd waste a lot of time guessing what to reply and when (Especially the DH Key Exchange), so go with COPS v7 at least for the login sequence.


* I'm only working on classic versions, port might be different on the latest patch