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!

MapleStory-Android/PC Release

Initiate Mage
Joined
Feb 26, 2023
Messages
1
Reaction score
2
Hello Ragezone,

Recently, I found a very interesting MapleStory Game made with Unity.
View attachment 173231
it can run on Android/iOS/Desktop platform. today I'm going to share some techs to reverse-engineering this game. from those techs you can also modify your client and develop your sever. just like what we did in office-MapleStory(analyze packet structure)

1. Analyze


Briefly, this server is built with WebSocket, the architecture is 1 login server and 10 Channel server. the packet is plain-text, so it is easy to make your own server.

this is some basic information in interacting between server and client. the server would reponse 10 Channel Server Ip to client when player login success.
View attachment 173232View attachment 173233


Another thing is when player open this game, it will download lots of client resources and Hot-Fix library. this hot-Fix libraray is very important, becasue it is the main game logic. here is the libraray address( ).

2. Reverse-Engineering

now we have client and we know the basic archtecuture, so we can try to reverse it. (I mainly introduce how to do it in windows platform, but it is samilar for u to do it in android platform.

Tools .
1. dnSpy
2. Download its client and Hot-Fix library.
As we mentioned before. this game would download the libraray from network, but it did not save to local, so the first step is hacking it and load the your native libaray.

Open dnSpy and load the 冒险新纪元_Data\Managed\Assembly-CSharp.dll, found the class GuangYing.AppDomainManager

4 - MapleStory-Android/PC Release - RaGEZONE Forums

we can see there is a function named LoadHotFixAssembly, unity's string encryption is based on base64, so
Decrypt it
"OjovVW5pdHlQcm9qZWN0L01hcGxlU3RvcnkvQXNzZXRzL1N0cmVhbWluZ0Fzc2V0cy9Ib3RGaXhfUHJvamVjdC5kbGw="

it was ::/UnityProject/MapleStory/Assets/StreamingAssets/HotFix_Project.dll

so we can modify it directly from dnSpy to

stringdllPath=Application.streamingAssetsPath+"/HotFix_Project.dll";

and then put HotFix_Project.dll to local streamPath, it would load local library.

Note the
streamingAssetsPathis under 冒险新纪元_Data/StreamingAssets

3. Add your feature

using dnSpy to modify HotFix_Project.dll , you can find alot of packet receiver and even how to write packet. like
5 - MapleStory-Android/PC Release - RaGEZONE Forums
. After you modify it just re-compile and save, it would be ok.

Note: some useful functions

GyUtils.Instance.AlertBlueInput("You Message", delegate(string npcId)
{

});

GyUtils.Instance.PushChatBoxMessage("Put this message to Chat List", new Color?(Color.red));


Reverse Android.

In Android Platform, it packed with il2cpp, so you need to use il2cpp tools to unpack your libil2cpp.so

After unpack it, it looks like this

6 - MapleStory-Android/PC Release - RaGEZONE Forums . then modify it and repack it, you can get your mobile MapleStory.



The Android Client



The Windows Client



My Demo Patch Lib



We can talk more about how to reverse and how to develop an easyily server.

Thanks ...
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Jul 3, 2014
Messages
21
Reaction score
1
share where the source is

also non of your attachments show anything
 
Newbie Spellweaver
Joined
Apr 15, 2023
Messages
6
Reaction score
0
I got to know about how to make my own server roughly, but the attachments in the post are no longer available.
Thanks for writing this post. I would be really apprieciate if you share further teaching :love::love::love:
 
Back
Top