-
Posts
17 -
Joined
-
Last visited
-
@xFranko Thanks for the detailed crash report! Based on your logs, it looks like a cleanup order issue during DLL unload - Font_CloseSys accessing freed memory. I couldn't reproduce it here, but I created a potential fix in the `v1.0.1-beta` branch: https://github.com/cnthigu/conquer-packet-interceptor/tree/v1.0.1-beta It adds proper cleanup order and exception handling. Not sure if it'll fix it since I can't test the crash scenario, but maybe it helps? Could you test and let me know? If it works, I'll merge to main. Thanks!
-
Packet interception demonstration for Conquer Online using MinHook + ImGui overlay. This is a feature I posted in the ConquerDX9.Hook thread and people liked it, so I decided to make it a separate dedicated project. Features: Real-time packet interception (before encryption) Packet injection (client encrypts automatically) ImGui overlay interface (toggle with INSERT key) Packet history with hex dump Automatic character ID extraction How I found it: Found SendPacket (0x007414F0) in IDA. // Address: 0x007414F0 (Conquer Online client version 6609) int __fastcall SendPacket( void* thisPtr, // Network object (ECX register) void* edx, // Unused (EDX register) void* data, // Packet data (NOT encrypted!) int len // Packet size ) Note: This address (0x007414F0) is specific to Conquer Online client version 6609 only. Usage: Version 6609 (Proxy Method): Rename original Chat.dll to OChat.dll in game folder Copy compiled Chat.dll to the same folder Launch game (no injector needed) Press INSERT to toggle ImGui interface Building: • Visual Studio (Release & Win32) • Output: Release/Chat.dll Rep: git/cnthigu/conquer-packet-interceptor Please like the project on GitHub? Libraries: • MinHook (included) • ImGui (included) Note: This is an educational project and example implementation, as a student. Use your creativity, there's so much more that can be done! If this helps you in any way, please consider giving it a star on GitHub!!!.
-
Thanks! It's really cool to see it working! Thanks! I'm organizing everything to post on GitHub soon. Just to clarify: it's actually a "packet interceptor" (not a proxy), it's a function hook that intercepts packets before encryption. Small technical difference! Finishing up the documentation. Should be on GitHub in a few days!
-
[Update] Packet Interceptor System - Real-Time Interception & Injection I've added a packet interceptor system to the project that enables real-time packet interception and injection via function hooking. Features: Real-time packet capture (before encryption) Packet injection (client encrypts automatically) In-game ImGui interface for packet visualization Packet history with hex dump Automatic character ID extraction How I found it: Found SendPacket (0x007414F0) in IDA. Starting from Winsock's send() function (known entry point) Tracing XREFs backwards: send() → encryption function → SendPacket Validated in x32dbg using call stack analysis By hooking this function, we can capture packets before they get encrypted. Technical Details: The function signature (from IDA pseudo-code): int __thiscall SendPacket( void* this, // Network object (ECX register) unsigned __int16* data, // Packet data (not encrypted!) size_t length // Packet size ) Key Insight: The client encrypts packets automatically after SendPacket. When we inject, we just call SendPacket with unencrypted data, no encryption code needed! Note: This was tested on client version 6609 only. The address (0x007414F0) is specific to this version. For other versions, you'll need to find SendPacket; Preview Video: [PREVIEW] Conquer Online Packet Interceptor - Intercept & Inject Packets in Real-Time This is still an educational project. Learning as I go, feedback welcome! Will post on GitHub soon.
-
Thank you, I really appreciate it! This started as a learning project, but it opened up a lot of ideas bots, client-side tools, and even questions like: could something like a voice system? It’s not meant to be something final, just an educational foundation. I hope it’s useful and inspires someone to create something new. Thanks! That’s an interesting idea. With an in-game ImGui interface, it’s easy to imagine building tools or buttons that trigger actions. Definitely an interesting topic for a separate, dedicated project. Thanks again for the support and for pinning the topic, and thanks to everyone who liked it on GitHub it really means a lot to me. Just an enthusiastic junior
-
DirectX9 function hooking demonstration for Conquer Online using MinHook + ImGui overlay. Features: DirectX9 hooking (EndScene, Reset) ImGui overlay interface (toggle with INSERT key) Always Jump feature Wireframe/Chams rendering String modification system Chat.dll proxy for version 6609 Memory pattern scanning for VMT detection Usage: Version 6609 (Proxy Method): Rename original Chat.dll to OChat.dll in game folder Copy compiled Chat.dll to the same folder Launch game (no injector needed) Press INSERT to toggle ImGui interface Other Versions (DLL Injection): 1. Remove proxy code from src/hooks/proxy.cpp and src/dllmain.cpp 2. Compile as regular DLL 3. Inject DLL into game process 4. Press INSERT to toggle ImGui interface Building: • Visual Studio (Release & x86) • Output: Release/Chat.dll GitHub: https://github.com/cnthigu/conquer-dx9-hook Credits: Special thanks to @duki for sharing his knowledge and examples that made this project possible. Based on examples and concepts from: showstring-rainbow Dip-hook-chamswireframeshaders chatdll-proxyhook always-jump Libraries: • MinHook (included) • ImGui (included) Note: This is an educational project and example implementation. As a student, I combined these concepts to demonstrate what's possible with DirectX9 hooking in Conquer Online. Use your creativity there's so much more that can be done! If this helps you in any way, please consider giving it a like in git. Feedback and contributions are always welcome!
-
I ended up spending the whole night working on this as well and managed to get the hook working. Using the same general idea, a lot of possibilities open up. Big thanks to duki and kennylovecode, both were great references and helped a lot while digging into this. Here’s a quick screenshot of how it looks From here it’s just a matter of iterating and building more features on top of it.
-
Hello everyone, I've been part of the Conquer Online community for many years, especially in Brazil. In the past, I attempted twice to run private servers in Brazil, reaching peaks of around 300 players online. At that time, however, I was still very inexperienced. I made many technical mistakes, relied on poor practices and sources, and after some time I couldn’t maintain proper support or long-term stability so I eventually stepped away from hosting. Since then, my relationship with Conquer has changed. Today, I work with Conquer purely for learning, experimentation, and fun. I use it as a way to practice programming, build features, and understand systems more deeply, without the pressure of monetization or running a live server. I currently have a YouTube channel where I teach people how to start and understand Conquer servers, and a small community of around 200 members. The goal has always been educational, helping people learn, not selling illusions. Professionally, I’m a junior developer working in a Blue Team environment, and I’m constantly studying security, systems, and performance. I started with C# through existing Conquer sources, and for the last few years I've been learning and improving in C++, especially in low-level and server-related concepts. I'm far from being an elite programmer, but I'm consistent, curious, and always evolving. What really motivates me about this project is the long-term vision. In Brazil, the Conquer community is extremely underserved most servers are short-lived, scam-oriented, and poorly managed, with owners focused only on quick profits instead of quality, stability, and respect for players. I would be very interested in being part of this team, contributing where I can development, tooling, testing, features, documentation. More than anything, I want to be part of something serious, transparent, and future-oriented, built by a responsible team that actually cares about the community. Thank you for reading, and I wish success to the project regardless
-
Hey @kennylovecode and everyone! Great work on the initial version! I got curious and decided to improve it a bit, still not like you guys yet though! I'm a student and just curious. Here are the new features/improvements: Drag-and-drop UI Win Forms move elements directly on screen with the mouse Added save button saves changes made to elements when moved One-click save to GUI.ini automatically saves the X and Y coordinates of the element that was moved in the form Byte-perfect file saving preserves special characters and comments exactly as they were English translation (the original had Chinese/Japanese lol) I've created a GitHub repository with the updated source code: https://github.com/cnthigu/conquer-client-edit Thanks again to @kennylovecode for the original work! Feel free to contribute if you want to add a pull request with the DDS linking part.
-
carniato changed their profile photo
-
Hi everyone, I’m trying to run the Canyon source and the connections seem fine. However, I’m having trouble connecting using a clean client with a loader. My loader config is: [Loader] IPAddress=192.168.200.104 LoginPort=9958 GamePort=5816 Website=http://www.elitepvpers.de Force=TRUE The problem is that the client freezes at the login screen and doesn’t get past that point. Also, nothing shows up in the server logs, as if the packet never arrives. Do you have any idea what I might be doing wrong? Also, I want to mention that my goal is to use DragonConquer, but since I’m still a beginner, I don’t fully understand the structure and the different modules yet. I put everything inside the Conquer folder after compiling and tried to run Dragon.exe, but nothing happens. I also tried using the BlackNull shortcut suggested in the Conquer.exe path, but still no luck. Note: I tried using a clean client version 6090 as well as a patched client up to version 6192, but the problem persists. Any help or guidance would be greatly appreciated!
-
Hello, I have an online private server that I use to learn more about IT and C#. At the moment, my few players are asking me to allow them to open more than two clients. However, I couldn’t find anything in my research. Can anyone help me? Note: My conquer.exe is encrypted with Themida. Note 2: Everything I’m saying here is just speculation. I am still very new and learning.
-
Issue with New User Rollback on Server Restart
carniato replied to carniato's topic in Conquer Online
I am Brazilian and I am using a translator, I thought it would be easier to understand. Finally, after days, I managed to find the problem. It was a check to see if the player had VIP6 status, and only then did it proceed to the saving part. -
Hey everyone, I’m having a problem with my server. When I restart it, new users experience rollback issues. Do you have any idea how I can solve this? Here’s what I’ve observed from my tests: The error occurs with “new” accounts; they are not disconnected correctly. “Older” accounts are saved without any problems. New accounts remain linked until a login attempt is made on the client side, which forces a logout. If I restart the server, it doesn’t save the progress of these new accounts that have difficulty logging out. Details: In the first image, a PM account logs out easily, and all its progress is saved. In the second image, a new account does not log out and does not save anything. If I force it to log in again, even though it is already logged in, it gives two errors and then logs out. The problem with the second image is that if I restart the server, its progress will not be saved. I believe the issue is that the UID is not being set for new clients, leaving it as 0. I’ve been struggling with this code for days. An observation: if I set the character to level 130 via VIP, the disconnection issue stops, and it saves correctly according to the logs I’ve checked. Any help would be greatly appreciated!
-
Hello, everyone! This is my first post on the forum, I hope you are all well. Recently, I’ve been working on a C# source to learn programming and pursue a career in the field. I’m making good progress, but I’ve encountered a problem that I can’t solve with my current knowledge. Problem: I would like to change the server name of my Conquer Online server. I searched for some solutions and found a decrypter for serve.dat, but it wasn’t enough. Question: I believe the correct method is using OLLYDBG, right? Could someone guide me on how to proceed? Thank you in advance for your attention. I’ll be bothering you a lot more! Hahaha