-
Posts
22 -
Joined
-
Last visited
Reputation
24 ExcellentAbout carniato
- Birthday 09/25/1996
Personal Information
-
Location
Brazil
-
Pronouns
it/its
Social Links
- Website
Recent Profile Visitors
854 profile views
-
thx dude!
-
Hey guys, I've been working on my own server using the Long source (Long.Kernel / Long.Network), and while reviewing the packet validation code I noticed something interesting in TcpClientSocket.cs. if (!receivedFooter.Equals(expectedFooter) && !receivedFooter.Equals("WUuTxfpe")) From what I can tell, if a packet footer doesn't match the expected value, the server will still accept it as long as the footer is "WUuTxfpe". I'm not sure if this was originally added for internal communication, debugging, or if it's simply leftover code from an older version. But if it's left enabled in a production server, it effectively bypasses the footer validation for anyone who knows that value. It may have had a legitimate purpose at some point, but it's worth double-checking. If you're running the Long source, search your codebase for WUuTxfpe and review whether that exception is still necessary. If not, keeping only the strict footer validation is probably the safer approach. Just sharing this in case it helps anyone maintaining a Long-based server. edit. Hey, sorry! I accidentally created the thread in the wrong section and didn't even notice. If possible, could you move it to the correct section? Thanks!
- 1 reply
-
- 2
-
-
@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!