Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Spirited

Administrator
  • Content Count

    148
  • Joined

  • Last visited

  • Days Won

    33

Spirited last won the day on February 13

Spirited had the most liked content!

Community Reputation

59 Excellent

Followers

About Spirited

  • Rank
    Guardian
  • Birthday December 18

Profile

Recent Profile Visitors

2,313 profile views
  1. Spirited

    JE to JMP

    I usually use C++ for things like this. Lower level Windows APIs are all in C/C++, so you'll have much finer control of memory and processes on Windows from C++. For example, if you wanted to create a new process in a suspended state and then modify its memory, you could use CreateProcess with a creation flag (CREATE_SUSPENDED). You don't have that option from C# ProcessStartInfo class. You can always use C# and use PInvokes, but I don't think it's an appropriate use for the language. Plus, if you want to inject a library as well, it means you'd be using two separate languages at that point (or trying to inject the .NET runtime which is extremely painful). Those are my two cents on the topic.
  2. Spirited

    Comet - Open Source Conquer Online Server

    Yey!! I'm so glad. Let me know if you have any questions.
  3. Spirited

    Simple database Migration manager

    I was going to add the same. That naming convention is no longer recommended unless surrounding code already follows that naming convention. Generally, you want to learn and follow the guidelines of a language so that any project you go to with that language is consistent and easy to read and contribute towards.
  4. Spirited

    Simple database Migration manager

    Looks good. I think someone mentioned naming conventions on the other board. Here're the naming guidelines I follow for dotnet. Outside of naming conversations, I prefer nice interfaces for parameterized queries over database ORMs. Maybe I've worked in Go for too long though. I can see a system like this doing really well for plain MySQL.
  5. Spirited

    Conquer Online Floor Editor

    Introduction This command-line tool allows you to edit the floor cells of Conquer Online data maps (DMaps). Each floor cell contains a flag on if players are blocked from stepping on the cell, what the surface feedback effect is when stepping on the cell, and what the elevation the cell is on. Similar to the Portal Editor, this tool can be compiled using the golang compiler for Windows, Mac, or Linux. I wrote this tool at work during our end-of-sprint game time, so it's a bit rushed. If you have any problems using it, let me know. Just fyi though, it's a command-line tool, so you must use it from a command prompt window. Picture Downloads See my portfolio website for download links and source code.
  6. I remember getting the interface down to show the product of breeding the two horses in the client. Not accurately since we don't have the real breeding algorithm, but good enough. I'd have to look back and see what I did (I can't remember off the top of my head). What I'd like to do with this project is generate breeding formulas for any desired outcome.
  7. Spirited

    Conquer Facebook Client

    You could try finding the binaries or an existing private server for it and packet log things.
  8. Spirited

    Conquer Facebook Client

    So, it sounds like the TCP handshake is working fine if it's established a connection. My guess is that Crazy Tao might be closer to Conquer 1.0 Alpha than Conquer 2.0, so you could be already getting encrypted data. Do you receive any bytes from the client after it connects?
  9. Spirited

    Conquer Facebook Client

    I'm really not sure. I've never tried setting up that client with a server. You can try the legacy cipher.
  10. Spirited

    SRP6 for higher clients

    https://gitlab.com/spirited/conquer/-/wikis/home
  11. Spirited

    SRP6 for higher clients

    Higher patches like that have a deviation in the algorithm. I haven't had the time to reverse it yet, but it looks like a relatively simple addition? It'd be super nice if people contributed to the wiki. 😅
  12. Spirited

    Conquer Facebook Client

    Hm. These are pretty obscure requests. I'm not sure I can help in particular, but I know there was a private server for Crazy Tao. I think it was a binary though. 😓
  13. Spirited

    Client: Disassembling Conquer in Hopper

    Yeah, the logic isn't consistent. With packets that it only accepts from the server, you'll find the logic in Process most of the time. It depends though. The more complicated packets are harder to follow. You should try the example I used to get your feet wet. It's pretty easy to get the structure, length, and packet id for. You'll figure it out, I'm sure. It just takes patience and effort - not two things I want to put into it right now which is why I posted this tutorial. Lol. I've done enough of this stuff for a while.
  14. Spirited

    Client: Disassembling Conquer in Hopper

    That'd be very appreciated. So far, I've been the only one updating the wiki. 😓
  15. Introduction Before you start disassembling Conquer, it's important that you understand the basics of assembly. For a tutorial on Assembly Languages, check out Tutorials Point. They cover the basics pretty well. This guide will help you disassemble Conquer for the first time using Hopper Disassembler, which is a reverse engineering tool I use to translate compiler machine languages into higher-level assembly language. Hopper is a paid program; therefore, I will not be providing a copy through this thread. I recommend purchasing a license and would definitely never suggest searching for one of the many, easy-to-find, pirated copies out there. Environment Hopper can only be installed on Linux and Mac OS. Therefore, if you're using Windows, you'll need to create a virtual machine. For simplicity, I recommend using either Oracle VirtualBox or VMWare Workstation Player; both have tutorials for running either Linux or Mac OS in a VM. I use Ubuntu 18.04 with VMWare Player. If you need a tutorial, check out this video. Once your virtual machine is set up, install Hopper Disassembler and you're ready to go. Disassembling Conquer Now that Hopper is set up, download a Mac client for Conquer. All you need is the dmg file (you don't need to install it). After downloading the file, open it in 7-Zip. Navigate to "Conquer\Conquer.app\Contents\ConquerGameExe.app\Contents\MacOS". This path might be different depending on the client version you downloaded. Extract the ConquerGameExe file and open it in Hopper. Hopper will automatically detect the compiler, so don't change any of its analysis settings. After a few minutes, you should have analyzed assembly. See the picture below. You can search for classes and methods using the Procs tab. Give it a try with a packet name from the wiki. After finding a method, switch between views along the top bar. One particularly helpful view is the "Show Pseudo Code of Procedure" view. This shows the assembly in a C-like assembly syntax. It's not perfect, but it does help show the flow of logic. You can also search for text using the Strs tab. Once you find a string you're looking for (ex. Monster.dat), you can see all references to the string in the right panel. This can help a lot when trying to understand how files are read by the client. Conclusion That's really it. I'm definitely not as experienced as others when it comes to reverse engineering, but Hopper does make it easier for those who have assembly knowledge but no knowledge on the structure of the game client's assembly. This won't help you develop bots or hacks on Windows, but it is helpful when writing a private server. Happy disassembling!
×

Important Information

By using this site, you agree to our Terms of Use.