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

03/24/2026 21:47 brklol#1
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 [Only registered and activated users can see links. Click Here To Register...] to figure it out yourself.

[Only registered and activated users can see links. Click Here To Register...]

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.
03/26/2026 05:08 Eckounlimitd23#2
kept getting Cannot open include file: 'spdlog/spdlog.h': No such file or directory error
03/26/2026 13:40 pintinho12#3
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
03/26/2026 17:03 brklol#4
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
03/27/2026 03:28 Eckounlimitd23#5
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?
03/29/2026 11:44 brklol#6
Auto-hunt added, enjoy
03/31/2026 03:03 gozef2000#7
HWID Spoof feature please
03/31/2026 05:20 Eckounlimitd23#8
just got banned so this is probably already detected fyi.
03/31/2026 12:04 epvper627#9
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...
03/31/2026 13:34 brklol#10
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 shit, 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.
03/31/2026 15:24 epvper627#11
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 shit, 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!!
03/31/2026 15:40 Eckounlimitd23#12
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 shit, 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...
03/31/2026 16:39 epvper627#13
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.
03/31/2026 18:26 brklol#14
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.
04/12/2026 19:33 Eckounlimitd23#15
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.