Client Editing - What am I missing?

Initiate Mage
Joined
Apr 29, 2023
Messages
4
Reaction score
0
Hello,

I'm struggling to get my head around client editing and was hoping someone could point out the current flaw in my thinking/approach. I'm writing this question out as I run through the process again and detailing my steps in case doing so shows me the light. I'm not asking for the full process but sometimes it takes a while for things to click in my brain and let me get some momentum so if someone has some guidance on what logic I'm missing I would appreciate it.

I've started with getting an unpacked v83 client from and Angel's IDB file from here. I've also downloaded the v95 PDB and found what I believe is the IDC script from MinimumDelta's videos and I am using IDA Pro 7.7 32-bit.

Step 1:
Run IDA 32-bit as administrator, select New and open the unpacked GMSv83 client
Keep the settings as default and hit OK:
1696932803625 - Client Editing - What am I missing? - RaGEZONE Forums

Wait for everything to load and it says idle on the bottom left.

Step 2:
Run IDA 32-bit as administrator again, select New again and open Angel.idb this time. Select Yes here as this error is a non-issue and wait again
"The format of the database is obsolete (700). IDA will now upgrade it into format 770. Continue?"

Step 3:
Run the IDC script on the unpacked client through IDA - This is my first point of hesitation as I don't know if this script is hindering me as it's for a later version? I'm wondering if that is why I get the error:
"5FCDED: can't rename byte as 'CIteminfo:RegisterEquipItemInfo' because the name is already used in the program."
Nevertheless I hit OK and the script continues.

Step 4:
This is where I'm really thrown as when I search "field" in the functions window I get two things - neither of which contain the word Packet - "Field__JobCategoryCond__Parse" and "Field__BattlefieldTeamCond__Parse"

This is where I load the v95 PDB:
First I tried loading it directly into this v83 unpacked client ignoring the error saying that PDB signature and/or age does not match. Once this is done I get a lot more results for Field but the only one with Packet is "Wedding::OnPacket" so it feels a bit wonked out.

I then tried fiddling with loading the Maplestory.exe within the v95 PDB folder and adding the PDB file to that but that indicated it was a packed client so it didn't get me anywhere. And typing this out has made me kick myself and download the unpacked v95 client from the same post I got the v83 unpacked client.

Step 5a:
I've now loaded the unpacked v95 client, applied the IDC script and gotten the same two field functions found so I've loaded the v95 PDB file which actually gets me somewhere - I can find CField::OnPacket:
1696936583975 - Client Editing - What am I missing? - RaGEZONE Forums


Step 5b:
I wasn't sure how to translate the v95 OnPacket function into the v83 one so I had another thought - going backwards. I found CField::OnPacket = 00531325 in Angel.idb so I went to that address in GMSv83.exe and they look similar but different lengths:
1696938788643 - Client Editing - What am I missing? - RaGEZONE Forums


Then clicking into them with F5 and scrolling to start from the bottom I would see sub_72B82A = CQuickslotKeyMappedMan
1696938845832 - Client Editing - What am I missing? - RaGEZONE Forums


And finally I'd confirm this by clicking into each of them and seeing how similar they are as functions:
1696938943651 - Client Editing - What am I missing? - RaGEZONE Forums


I think through typing this out I've reached the correct conclusion but I thought I would post it anyway - either I'm wrong and if someone can help point me in the right direction that would be sicko mode. Or I'm right and this might help someone else

I've just fiddled some more and dumped angel.idb to an idc file and ran that as the script on the unpacked v83 client and that fixed that right up and seems to be all I needed to do?
 
Last edited:
Back