Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Tutorial] How to create a MapleStory .idb

Joined
Apr 10, 2008
Messages
4,087
Reaction score
1,264
Disclaimer

A lot of people lack the simple knowledge of reverse engineering for MapleStory -- so I decided to create this quick & small tutorial to cover some of the basics. The output will be a partial-named .idb file and a memory dump of the MapleStory executable.

What will this tutorial cover?

The basics of reverse engineering! First, we'll create a memory dump from the MapleStory executable using OllyDbg, and then we'll create our .idb and populate its' functions using a custom .idc script. Note that STREDIT can also read the memory dump, which is a bonus!

Downloads



Diamondo25)

Making a memory dump

There are several ways to dump the process' memory. We'll be using the easiest one, which is an external plugin made for OllyDbg called OllyDump. So, let's get started!

Open the MapleStory executable
Do this by launching GameLauncher.exe from your MapleStory folder. Do not proceed, stay at the launcher window.

Open Process Hacker
You'll see a list of all the processes running on your computer. Scroll down and you'll find MapleStory, our target. Right click it's line and select the 'Suspend' button. This makes sure we don't get detected by the client when we open up OllyDbg!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


Open OllyDbg
Go to File -> Attach. A window of processes will pop up. Select the MapleStory process (named 'MapleStory') and press Attach!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


Dump!
Simply go to Plugins -> OllyDump -> Dump debugged process. Press the Dump button and save the dumped executable where ever you wish!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


Naming functions
In order to name the functions, you'd have to open up the dumped executable with IDA. I suggest using idag.exe for this, even if you're running 64-bit to avoid any errors.

(This part takes a while. IDA analyzes the executable).

After you're done analyzing, press ALT + F7 and select the naming .idc script. Once selected, the automated process begins. Once it's done, you'll see the named functions to the left!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


... You're done! Save the .idb by pressing the save icon and you're good to go.
 
Initiate Mage
Joined
Apr 23, 2015
Messages
4
Reaction score
1
Approximately how big should the dumped binary be? I've tried dumping two different versions (v144 and v164), and both trials resulted in Ollydbg freezing and the binaries produced were around 32 and 34 mb.
 
Joined
Apr 10, 2008
Messages
4,087
Reaction score
1,264
Approximately how big should the dumped binary be? I've tried dumping two different versions (v144 and v164), and both trials resulted in Ollydbg freezing and the binaries produced were around 32 and 34 mb.

OllyDbg freezes because it is dumping the process. The output file should be a bit larger than the original client. 32 MB looks fine.
 
Newbie Spellweaver
Joined
Aug 22, 2017
Messages
8
Reaction score
0
Disclaimer

A lot of people lack the simple knowledge of reverse engineering for MapleStory -- so I decided to create this quick & small tutorial to cover some of the basics. The output will be a partial-named .idb file and a memory dump of the MapleStory executable.

What will this tutorial cover?

The basics of reverse engineering! First, we'll create a memory dump from the MapleStory executable using OllyDbg, and then we'll create our .idb and populate its' functions using a custom .idc script. Note that STREDIT can also read the memory dump, which is a bonus!

Downloads



Diamondo25)

Making a memory dump

There are several ways to dump the process' memory. We'll be using the easiest one, which is an external plugin made for OllyDbg called OllyDump. So, let's get started!

Open the MapleStory executable
Do this by launching GameLauncher.exe from your MapleStory folder. Do not proceed, stay at the launcher window.

Open Process Hacker
You'll see a list of all the processes running on your computer. Scroll down and you'll find MapleStory, our target. Right click it's line and select the 'Suspend' button. This makes sure we don't get detected by the client when we open up OllyDbg!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


Open OllyDbg
Go to File -> Attach. A window of processes will pop up. Select the MapleStory process (named 'MapleStory') and press Attach!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


Dump!
Simply go to Plugins -> OllyDump -> Dump debugged process. Press the Dump button and save the dumped executable where ever you wish!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


Naming functions
In order to name the functions, you'd have to open up the dumped executable with IDA. I suggest using idag.exe for this, even if you're running 64-bit to avoid any errors.

(This part takes a while. IDA analyzes the executable).

After you're done analyzing, press ALT + F7 and select the naming .idc script. Once selected, the automated process begins. Once it's done, you'll see the named functions to the left!

Fraysa - [Tutorial] How to create a MapleStory .idb - RaGEZONE Forums


... You're done! Save the .idb by pressing the save icon and you're good to go.


You deserve and honorable mention for this :p very straight forward as well
 
Newbie Spellweaver
Joined
Jul 12, 2015
Messages
9
Reaction score
0
Open the MapleStory executable
Do this by launching GameLauncher.exe from your MapleStory folder. Do not proceed, stay at the launcher window.
Fraysa

If I want to get packets for MapleSotry v55 can I do it to the real client of nexon or I can even
use the LocalHost v55?
 
Newbie Spellweaver
Joined
Mar 18, 2020
Messages
5
Reaction score
0
The idc script does not name the COutPacket in olly, I see this is aob based. Would client version cause this?
 
Discord: .z41n
[VIP] Member
Joined
Aug 3, 2008
Messages
172
Reaction score
26
Got to the point where I'm running to IDC script, but it appears that the function names are all still sub_XXXXX.

The output window says it found only about 6 names

Any ideas? Using IDA 32BIT, with the script provided
 
Back
Top