Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Bots & Macros
You last visited: Today at 06:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] ClassicConquer Bot/Multi-Tool (Packets, Overlays, Plugins)

Discussion on [Release] ClassicConquer Bot/Multi-Tool (Packets, Overlays, Plugins) within the CO2 Bots & Macros forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2008
Posts: 62
Received Thanks: 54
[Release] ClassicConquer Bot/Multi-Tool (Packets, Overlays, Plugins)

Hi all,

Decided to open source the bot/tool I've been working on for Classic Conquer (conqueronline.net).

I don't expect anyone to contribute to this project but feel free to open a pull request if you're curious enough. The existing code is by no means perfect, it was a learning experience for me as well.

The 'original' source comes with a HWID and anti-cheat spoofer for the login flow, but I decided to not publish that part of the tool. However, you may follow to figure it out yourself.



PS: I will NOT compile the project for you. You will have to figure it out yourself. It is set up in a way that it should be easy enough for you to figure it out.
brklol is offline  
Thanks
3 Users
Old 03/26/2026, 05:08   #2
 
elite*gold: 0
Join Date: Jan 2006
Posts: 46
Received Thanks: 7
kept getting Cannot open include file: 'spdlog/spdlog.h': No such file or directory error
Eckounlimitd23 is offline  
Old 03/26/2026, 13:40   #3
 
pintinho12's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 945
Received Thanks: 411
Quote:
Originally Posted by Eckounlimitd23 View Post
kept getting Cannot open include file: 'spdlog/spdlog.h': No such file or directory error
Didn't took me long to find that on the web.

Quote:
Originally Posted by brklol View Post
PS: I will NOT compile the project for you. You will have to figure it out yourself. It is set up in a way that it should be easy enough for you to figure it out.
Also this
pintinho12 is offline  
Old 03/26/2026, 17:03   #4
 
elite*gold: 0
Join Date: Aug 2008
Posts: 62
Received Thanks: 54
Quote:
Originally Posted by Eckounlimitd23 View Post
kept getting Cannot open include file: 'spdlog/spdlog.h': No such file or directory error
It's a git submodule under the vendor dir, simply fetch it
brklol is offline  
Old 03/27/2026, 03:28   #5
 
elite*gold: 0
Join Date: Jan 2006
Posts: 46
Received Thanks: 7
Quote:
Originally Posted by brklol View Post
It's a git submodule under the vendor dir, simply fetch it
got it to work. thanks. any chance you can release the autohunt feature or send it to me?
Eckounlimitd23 is offline  
Old 03/29/2026, 11:44   #6
 
elite*gold: 0
Join Date: Aug 2008
Posts: 62
Received Thanks: 54
Auto-hunt added, enjoy
brklol is offline  
Old 03/31/2026, 03:03   #7
 
elite*gold: 0
Join Date: Oct 2008
Posts: 21
Received Thanks: 0
HWID Spoof feature please
gozef2000 is offline  
Old 03/31/2026, 05:20   #8
 
elite*gold: 0
Join Date: Jan 2006
Posts: 46
Received Thanks: 7
just got banned so this is probably already detected fyi.
Eckounlimitd23 is offline  
Old 03/31/2026, 12:04   #9
 
elite*gold: 0
Join Date: Jul 2024
Posts: 3
Received Thanks: 0
Quote:
Originally Posted by Eckounlimitd23 View Post
just got banned so this is probably already detected fyi.
For real? dang, we need the HW Spoof...
epvper627 is offline  
Old 03/31/2026, 13:34   #10
 
elite*gold: 0
Join Date: Aug 2008
Posts: 62
Received Thanks: 54
Quote:
Originally Posted by Eckounlimitd23 View Post
just got banned so this is probably already detected fyi.
You most likely got reported

They check your HWID + IP + email address, any account that's linked to any of those will get banned if you get caught. You have to make full use of the player safety features in order to not get reported. If you carelessly bot then expect to get reported because the server is infested with people that have absolutely no life and would love to track your characters down for nothing in return. I've already seen people complaining about the mining bots and recording/reporting them after I released this bot.

There is nothing that would cause 'detection', the server owner pretty much doesn't give a ****, there is no server sided analysis nor anything in the client that would detect the injected DLL. Logic is a little dog that'd ban anyone without hesitation (even when innocent) as long as people report to him.
brklol is offline  
Old 03/31/2026, 15:24   #11
 
elite*gold: 0
Join Date: Jul 2024
Posts: 3
Received Thanks: 0
Quote:
Originally Posted by brklol View Post
You most likely got reported

They check your HWID + IP + email address, any account that's linked to any of those will get banned if you get caught. You have to make full use of the player safety features in order to not get reported. If you carelessly bot then expect to get reported because the server is infested with people that have absolutely no life and would love to track your characters down for nothing in return. I've already seen people complaining about the mining bots and recording/reporting them after I released this bot.

There is nothing that would cause 'detection', the server owner pretty much doesn't give a ****, there is no server sided analysis nor anything in the client that would detect the injected DLL. Logic is a little dog that'd ban anyone without hesitation (even when innocent) as long as people report to him.
Any idea what the HWID are? So far it looks like MAC Address and Disk serial number, are there more like Registry keys or so? I did some static binary analysis a while back and my findings were MAC, Disk Serial, and Info being pulled from Registry keys to further identify the user.

I could be wrong though.

Many Thanks!!
epvper627 is offline  
Old 03/31/2026, 15:40   #12
 
elite*gold: 0
Join Date: Jan 2006
Posts: 46
Received Thanks: 7
Quote:
Originally Posted by brklol View Post
You most likely got reported

They check your HWID + IP + email address, any account that's linked to any of those will get banned if you get caught. You have to make full use of the player safety features in order to not get reported. If you carelessly bot then expect to get reported because the server is infested with people that have absolutely no life and would love to track your characters down for nothing in return. I've already seen people complaining about the mining bots and recording/reporting them after I released this bot.

There is nothing that would cause 'detection', the server owner pretty much doesn't give a ****, there is no server sided analysis nor anything in the client that would detect the injected DLL. Logic is a little dog that'd ban anyone without hesitation (even when innocent) as long as people report to him.
yea you are right, most likely one of my miners got reported as i went a little overboard with them, but that was on my laptop. my main got hit as well which is using auto hunt on my pc but was super careful with it. even my seller and alt that isnt even injected got banned. all using different proton emails. so most likely got me with the ip then hwid banned both pc. but weirdly, i was able to create another account and so far it's been a day and no ban on that one, so not sure if it's just banned that one instance or they keep checking...
Eckounlimitd23 is offline  
Old 03/31/2026, 16:39   #13
 
elite*gold: 0
Join Date: Jul 2024
Posts: 3
Received Thanks: 0
Quote:
Originally Posted by Eckounlimitd23 View Post
yea you are right, most likely one of my miners got reported as i went a little overboard with them, but that was on my laptop. my main got hit as well which is using auto hunt on my pc but was super careful with it. even my seller and alt that isnt even injected got banned. all using different proton emails. so most likely got me with the ip then hwid banned both pc. but weirdly, i was able to create another account and so far it's been a day and no ban on that one, so not sure if it's just banned that one instance or they keep checking...
I got banned more than 3 times (from few weeks to few months apart) using same devices. They only seem to act based on player reports rather than blacklisting hardware.
epvper627 is offline  
Old 03/31/2026, 18:26   #14
 
elite*gold: 0
Join Date: Aug 2008
Posts: 62
Received Thanks: 54
Follow these steps to reverse the login packet aka hwid/anticheat. I had ChatGPT summarize it for me because I'm not the best at writing:
Reversing the HWID System: A Step-by-Step Guide

A walkthrough of how I reversed the hardware fingerprinting in a Themida-packed game client and built a spoofer from scratch.



Step 1: Find the Hook Point

The client is Themida-packed, so static analysis of the login flow is mostly a dead end. Instead, work backwards from the network layer. Trace from ws2_32.send up the call
stack until you find the function that receives plaintext packets before the game's encryption layer. In this case, that's CNetClient::SendMsg — a method that
takes a client pointer, a data buffer, and a size.

This is the ideal hook point. Hooking lower (at the socket layer) means you'd have to reverse the Themida stateful cipher to decrypt, modify, and re-encrypt. Hooking here, you get clean plaintext
with a simple [u16 size][u16 type][payload] header.



Step 2: Log Everything During Login

Hook SendMsg with Detours, log every outgoing packet's type and hex dump. During a login attempt you'll see two packets fire in sequence:
  • A small ~34-byte packet (type 0x0421)
  • A larger ~169-byte packet (type 0x041B)

These only appear at login time. Capture them from two different machines — one clean, one banned — and diff them.



Step 3: Decode the Wire Format

Both packets use protobuf encoding after the 4-byte header. You don't need .proto files — just write a minimal varint + tag parser. The wire format is simple: each field
is a tag byte (field number + wire type) followed by either a varint or a length-delimited blob.

Packet 0x0421: Five varint fields. All differ between machines. These are hardware identifiers computed inside the Themida VM via direct syscalls (bypassing any user-mode hooks). You can't
intercept their collection, only replace the finished packet.

Packet 0x041B: Six fields — a string (account name), a 64-byte blob (password hash), a string (server name), a varint (timestamp), a varint (timestamp XOR'd with a constant), and a 64-byte
blob (field 6 — purpose unknown at this point).



Step 4: Experiment with Replacement

Try different spoofing strategies and observe the server's response:


Results:

Code:
  What you replace                                    | Server response
  ----------------------------------------------------|---------------------------------------------
  Only the 0x0421 packet                              | Rejected — cross-check fails
  Only field 6 of 0x041B with random bytes            | ~75% "VM detected", ~25% passes
  Both 0x0421 + field 6 with donor data               | Accepted
  Random values in 0x0421 varints                     | "Invalid client version"
The intermittent VM detection from random field 6 is the critical clue. It means field 6 is not opaque — the server decrypts and inspects it. The ~75% failure rate suggests a flags field
where random bits trigger detection.



Step 5: Reverse the Field 6 Encryption

You know field 6 is exactly 64 bytes (block-aligned), and the server can decrypt it, so it must use a key derivable from other packet data. The obvious candidates are the timestamp (field 4) and
password hash (field 2) — the only other substantial data in the packet.

Search the binary for crypto constants. AES S-box values, MD5 init constants (0x67452301, etc.), or known block cipher structures. Even inside Themida-virtualized code,
the crypto primitives often live in non-virtualized helper functions.

Through a combination of tracing the code path that builds 0x041B and examining cross-references to crypto functions, you can recover the key derivation:

Code:
  key material = timestamp(4 bytes) + password(64 bytes) + timestamp(4 bytes) + constant(4 bytes)
  key = IV = MD5(key material)
  cipher = AES-128-CBC, no padding
The constant is a magic value found in the key derivation function.



Step 6: Decrypt and Map the Struct

Now decrypt field 6 from your captured packets using the derived key. You get 64 bytes of plaintext. Compare the decrypted blobs from your two machines side by side:
  • Bytes 0-3 differ (some machine ID)
  • Bytes 4-7 are identical (don't touch these — server validates them)
  • Bytes 8-11 differ (your IP as a uint32)
  • Bytes 12-15 are zero on both (the flags field — this is what triggers VM detection when randomized)
  • Bytes 16-31 look like ASCII hex strings (MAC address)
  • Bytes 32-47 are ASCII, null-padded (Windows username)
  • Bytes 48-63 are ASCII, null-padded (computer name)

You can verify each field by changing one thing at a time on your test machine (rename the PC, change the MAC) and re-capturing.



Step 7: Implement the Spoofer

With the full picture, the implementation is straightforward:
  1. Hook SendMsg via Detours
  2. For 0x0421: replace the entire packet with captured bytes from the donor machine
  3. For 0x041B: parse the protobuf, keep fields 1-3 (your credentials), decrypt field 6, modify the hardware-identifying fields while keeping the flags field zeroed and the app hash
    untouched, re-encrypt with the same key, splice the 64 bytes back in at the same offset

Because the struct is exactly 64 bytes (4 AES blocks), the ciphertext is the same size as the plaintext — the packet length never changes, so no protobuf length fields need updating.



Key Takeaways
  • Hook high, not low. Intercepting plaintext at SendMsg eliminated the entire Themida cipher problem.
  • The ~75% failure rate was the Rosetta Stone. It proved field 6 was structured, not opaque, and that a specific bit region controlled VM detection.
  • Diff two known machines. Comparing clean vs. banned packet captures, field by field, maps the struct faster than static analysis.
  • The server doesn't check timestamp freshness. Full replay of donor packets works, meaning you can capture once and reuse indefinitely.
brklol is offline  
Thanks
1 User
Old 04/12/2026, 19:33   #15
 
elite*gold: 0
Join Date: Jan 2006
Posts: 46
Received Thanks: 7
Quote:
Originally Posted by brklol View Post
Auto-hunt added, enjoy
anyway to change the script where it store stuff after dying instead of just going back to the spawn? i've been trying to figure it out

Quote:
Originally Posted by Eckounlimitd23 View Post
anyway to change the script where it store stuff after dying instead of just going back to the spawn? i've been trying to figure it out
nevermind got it figured out. i also tweaked it where if the bot detects a player nearby, it'll move opposite direction, just a little safety measure.

i really appreciate you releasing this. the source the did help and actually learned a lot of codings becuase of it. thanks again.
Eckounlimitd23 is offline  
Reply


Similar Threads Similar Threads
[Release] +5500 Packets structure , client/packets constants
10/07/2012 - CO2 PServer Guides & Releases - 10 Replies
edit : if u know nothing about packets go to this post first explaining what is packets , and explaining a packet with details and everything http://www.elitepvpers.com/forum/co2-pserver-disc ussions-questions/2162344-packets-packets-packets. html#post19074533 i start making my very own packet structure to use them on my new proxy but i thought of ripping them from the source so yeah the following packets is ripped of trinity base source right now im just providing the packets structure...
Packets packets packets...
10/06/2012 - CO2 Private Server - 13 Replies
I have been struggling to understand what is a Packet how could i create one with the data i want then send it to my server So please any one tell if as example i want to send some info from my client to my server, then handle them from the server how could i do that : i have my socket server, also i don't wanna copy and paste codes i want to UNDERSTAND. My PacketReader.cs
ClassicConquer
10/31/2010 - CO2 PServer Archive - 12 Replies
Classic conquer 1.0 is back check the site if you dont believe me, but we need your support to keep this server alive, we need ur support :( Here is the video: YouTube - classic-conquer Classic Conquer:Classic-Conquer And remember we need your support to keep this project alive, we also need programmes to help in fixing bugs. :handsdown: No BP



All times are GMT +2. The time now is 06:25.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.