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.
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.
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.
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!
Without a doubt, Conquer Online's emojis / emoticons are outdated. Luckily, adding new emojis to the client is relatively easy. New emojis must be 32x32 pixels. This tutorial also requires editing DDS assets in the client. You can find a tutorial on how to edit those assets here.
Open data/EmotionIco in the client's directory Add or edit existing dds files for different frames of the animated emoji (doesn't have to be animated) Add or edit existing JPG files for the same frames in data/EmotionIco/JPG Edit ani/EmotionIco.ani with the new frames (see example below) Restart the client and enjoy your new emojis Example
[ICON68_bmp] FrameAmount=4 Frame0=data/EmotionIco/jpg/68/1.jpg Frame1=data/EmotionIco/jpg/68/2.jpg Frame2=data/EmotionIco/jpg/68/3.jpg Frame3=data/EmotionIco/jpg/68/4.jpg [ICON68] FrameAmount=4 Frame0=data/EmotionIco/68/1.dds Frame1=data/EmotionIco/68/2.dds Frame2=data/EmotionIco/68/3.dds Frame3=data/EmotionIco/68/2.dds Pictures
Conquer Online is an isometric game made up of 2D assets and 3D object files. These 2D assets are stored in DDS format, used for map tile backgrounds, scenery objects, texture maps for 3D objects, etc. Most DDS files in the client are compressed in WDF files which can be extracted using a tool from the wiki. This tutorial shows how assets can be edited in Paint.NET, a free paint program which supports DDS format. Other editors can be used, such as Photoshop with the following NVIDIA DDS plugin. Gimp also includes a DDS plugin. You can also view DDS files from Windows Explorer using this thumbnail shell extension (still works on Windows 8/10, but only enable DDS viewing to avoid problems with live tiles in the start menu).
In this tutorial, I'll be editing a tree in Twin City.
Start by extracting data.wdf in the root folder of the client Find the tree asset in data/map/mapobj/newplain/plain/ Open np09.dds in Paint.NET and make some modifications When saving the file, select "DXT3" with "Range Fit" compression Restart the client and confirm your edit Pictures