some localhost clients KMS/JMS/CMS/TWMS

IMS v1 open beta test (?) version is added.


this client uses different anti cheat, and the DLL named dph.ldr tries updating modules from DllMain.
it causes unpacking problem and game launch problem. you need to replace it to my file.

Code:
// IMS v1.2.1 beta
00863C70: // Server IP
db '127.0.0.1' 00 00 00

00752A7D: // skip security
db EB

0074E396: // CWvsApp::ConnectLogin restore, OK
mov esi,[0094441C] // TSingleton<CClientSocket>::ms_pInstance
mov ecx,esi
call 0046344F // CClientSocket::Close
mov ecx,esi
call 00464402 // CClientSocket::ConnectLogin
jmp 0074E3BB


0078459D: // WzRSAEncryptString
lea eax,[esp+170]
mov eax,[eax]// password buffer
jmp 007845B6
007845B9+2:
db 0C
007845BE:
db 90 90 90

// if you want to use original file, you need to patch dph.ldr like this.
// unpack test
// dph.ldr
// CODE:00338DF4 dph.ldr:$8DF4 #81F4 <EntryPoint>
00308DF4:
db B8 01 00 00 00 C3
 
Last edited:
Thank you for sharing. This is the first online game I've played, and I really like it. I can't help but admire what an impressive project it is. I've never seen a server emulator that can support such a wide variety of clients, both in terms of accommodating differences from each country's client and supporting various client versions.

It makes me wonder how servers and clients generally work. Do we need to prepare as much content as possible on the server to be ready for all the diverse clients? And can other developers typically do something like this? (I use Vana, which was developed in C++ and has been discontinued for many years, but now that AI can write code so well, I'm hoping someone might pick it up and further develop it.) I'd like to know what the real limitations are that require the server and client to have matching versions. This is something I've always been curious about. Could you share some insights on this, and what are the limitations?

One more thing, after seeing that THMS v0.87 can be played on your server code, I've been trying to find the THMS v0.87 Client Installer. However, I've only found version 0.88. I saw you have a localhost for THMS v0.87 and I'm not sure if you have the THMS v0.87 Client Installer and if you would be willing to share it.
 
Thank you for sharing. This is the first online game I've played, and I really like it. I can't help but admire what an impressive project it is. I've never seen a server emulator that can support such a wide variety of clients, both in terms of accommodating differences from each country's client and supporting various client versions.

It makes me wonder how servers and clients generally work. Do we need to prepare as much content as possible on the server to be ready for all the diverse clients? And can other developers typically do something like this? (I use Vana, which was developed in C++ and has been discontinued for many years, but now that AI can write code so well, I'm hoping someone might pick it up and further develop it.) I'd like to know what the real limitations are that require the server and client to have matching versions. This is something I've always been curious about. Could you share some insights on this, and what are the limitations?

One more thing, after seeing that THMS v0.87 can be played on your server code, I've been trying to find the THMS v0.87 Client Installer. However, I've only found version 0.88. I saw you have a localhost for THMS v0.87 and I'm not sure if you have the THMS v0.87 Client Installer and if you would be willing to share it.
i sent a thms87 download link in DM.

i think C++ is best to develop server, but im currently using java. im thinking i will replace java to C++.
there is few difference between client versions. so updating to high/low version is not so difficult.

THMS87 IDB
Server src
xml
 
Last edited:
Thank you for your kindness. I'm really glad to hear that you're planning to develop the server in C++—that's truly great news! I believe it will bring even better performance and flexibility to the project.

Also, the project you shared on GitHub and the information you provided have been working really well for me—thank you again!

By the way, I was a bit curious—do you know why THMS (Thai MapleStory client) doesn't display Thai text correctly? It doesn't show any Thai characters at all; instead, it displays some unreadable character or symbols.
I’m wondering whether it's something that needs to be adjusted on the server side, or if it’s related to the client binary itself.
If you have any general direction or tips, I’d really appreciate your guidance.
 
Last edited:
Thank you for your kindness. I'm really glad to hear that you're planning to develop the server in C++—that's truly great news! I believe it will bring even better performance and flexibility to the project.

Also, the project you shared on GitHub and the information you provided have been working really well for me—thank you again!

By the way, I was a bit curious—do you know why THMS (Thai MapleStory client) doesn't display Thai text correctly? It doesn't show any Thai characters at all; instead, it displays some unreadable character or symbols.
I’m wondering whether it's something that needs to be adjusted on the server side, or if it’s related to the client binary itself.
If you have any general direction or tips, I’d really appreciate your guidance.
idk, probably OS environment problem.
my OS language is japanese, so my video's thms does not show correctly thai language.
but if you are same, probably other problem.

chat text : server code problem.
wz & client string : client/OS problem.

this is thms87 client fix code for making localhost client. please check if client has problem for showing thai language. idk my fix code is correct or not.
unmodified unpacked client is in mega's folder.
 

Attachments

Hey Riremito,

Thanks a million for your pointers and the resources!

Sorry for the delay in replying. I've been spending the past couple of days going through your videos and exploring the tools you shared for the binary files. There's definitely a lot to learn and get familiar with, so I'm taking my time with it.

Just wanted to express my appreciation first.

Regarding the Thai language display: yes, the chat text and some item details are appearing as garbled characters on my end. Just to confirm, my Windows locale is already set to Thai, but the issue persists for these. So, following your earlier insight ("chat text: server code problem"), I'm also leaning towards this being a server-side matter for those elements.
 
  • KMST v2.391
    • 要查看内容,您需要登录或注册
    • 比 KMS v2.138 稍微老一点
 
GMS clients are something weird, so i rarely make localhost for gms. (i cannot understand crash is caused by anti cheat/debug codes or official client bugs.)
if you want English version, you should choose EMS. because EMS is easy to make localhost.
and JMS/KMS/TWMS are also easy.


easy to understand the version of client can run with redirector or work as localhost client.
case A) you can run original MapleStory.exe on your PC and it can be run without getting crash.
using the client with redirector is possible to do.
but you have to check, it works for other version of OS or not. (different environments)

case B) you cannot run original MapleStory.exe on your PC.
unpacking is needed to make the client working. and you need to fix official client bugs to bypass unknown crashes.


2012 ~ 2017 version of JMS/EMS clients were i already checked before. so these are easy to do with redirectors.
(and i also checked JMS/TWMS/KMS clients after x64 updates, these are also easy to do.)


i analyzed GMS126/131 a bit, it seems really hard to make localhost. i think redirector is recommended.
 
Last edited:
I thought GMS > v111 couldn't be unvirtualized with current tools as they were using more robust version of themida (or is it vmprotect)?

Edit: just saw main post saying they were not fully unvirtualized.
 
Last edited:
Hello. How do I unpack the localhost for KMS 1.2.138 and KMS 1.2.160? I've referenced the leaked PDB for KMST 1.2.1029 and the leaked PDB for GMS .95 to analyze and rename the IDB functions. Based on the "Ezorsia HD" project, I can modify and add jobs as I wish. However, I don't know how to perform the most important tasks, such as "Unpacking" and "Creating Localhost." Therefore, I can't develop for various versions unless the "Localhost" file is shared with a specific version. T_T...

For a beginner like me, could you provide a tutorial on "Unpacking" and "Creating Localhost?" In particular, when using Ollydbg, it says to use a specific plugin, but I can't find any information because sharing of the plugin is blocked in Korea. Also, in the case of GMS, I was able to find a tool called "Extalia's MapleStoryU Builder" in Ragezone and obtain the "Unpacked" file for certain versions of "GMS v120+".

----------------------------------------------------------------------------------------------------------------
Additionally, could someone explain the differences between "Client_TMP," "Client_Unpacked," and "Client_Localhost" on Riremito's MEGA site?

"Unpacked" is for "IDB analysis,"
"Localhost" is for "the actual distribution files for multiplayer,"
"TMP" is for "what?"

----------------------------------------------------------------------------------------------------------------
Also, my "Str2dit" doesn't open the KMS v138, 160 Localhost/Unpacked file uploaded by "Riremito" and I get the following error... I'd like to ask someone who has a "Str2dit" that can open it.

System.IO.EndOfStreamException: Cannot read beyond the end of the stream.
Location: System.IO.BinaryReader.FillBuffer(Int32 numBytes)
Location: System.IO.BinaryReader.ReadSByte()
Location: STREDIT.frmMain.Decode(BinaryReader br, Int32 stringPos, Boolean& _bstr_td_text)
Location: STREDIT.frmMain.LoadFile(String pFilename)
 
Last edited:
Hello. How do I unpack the localhost for KMS 1.2.138 and KMS 1.2.160? I've referenced the leaked PDB for KMST 1.2.1029 and the leaked PDB for GMS .95 to analyze and rename the IDB functions. Based on the "Ezorsia HD" project, I can modify and add jobs as I wish. However, I don't know how to perform the most important tasks, such as "Unpacking" and "Creating Localhost." Therefore, I can't develop for various versions unless the "Localhost" file is shared with a specific version. T_T...

For a beginner like me, could you provide a tutorial on "Unpacking" and "Creating Localhost?" In particular, when using Ollydbg, it says to use a specific plugin, but I can't find any information because sharing of the plugin is blocked in Korea. Also, in the case of GMS, I was able to find a tool called "Extalia's MapleStoryU Builder" in Ragezone and obtain the "Unpacked" file for certain versions of "GMS v120+".

----------------------------------------------------------------------------------------------------------------
Additionally, could someone explain the differences between "Client_TMP," "Client_Unpacked," and "Client_Localhost" on Riremito's MEGA site?

"Unpacked" is for "IDB analysis,"
"Localhost" is for "the actual distribution files for multiplayer,"
"TMP" is for "what?"

----------------------------------------------------------------------------------------------------------------
Also, my "Str2dit" doesn't open the KMS v138, 160 Localhost/Unpacked file uploaded by "Riremito" and I get the following error... I'd like to ask someone who has a "Str2dit" that can open it.

System.IO.EndOfStreamException: Cannot read beyond the end of the stream.
Location: System.IO.BinaryReader.FillBuffer(Int32 numBytes)
Location: System.IO.BinaryReader.ReadSByte()
Location: STREDIT.frmMain.Decode(BinaryReader br, Int32 stringPos, Boolean& _bstr_td_text)
Location: STREDIT.frmMain.LoadFile(String pFilename)
i already posted how to make localhost in other thread, please use search box in his forum.
unpacked : just unpacked client, these are clean and unmodified files.
localhost : these are edited to run it as localhost client by removing anti cheats code.
tmp : is tmp, i did not check the versions because i did not write the version of server. or it is old files. please use files in normal localhost directory.

please ask stredit author about the problem, it is caused by bad coded pe parsing code.
i checked my tools can open it.

string pools
 

Attachments

i already posted how to make localhost in other thread, please use search box in his forum.
unpacked : just unpacked client, these are clean and unmodified files.
localhost : these are edited to run it as localhost client by removing anti cheats code.
tmp : is tmp, i did not check the versions because i did not write the version of server. or it is old files. please use files in normal localhost directory.

please ask stredit author about the problem, it is caused by bad coded pe parsing code.
i checked my tools can open it.

string pools
Thank you for your kind reply. My English is not very good, so I missed the "Localhost Creation Tutorial" thread you posted. Sorry. While reviewing your posts, I have a question. What do you consider when determining whether virtualization exists? I'm not entirely sure what "virtualization" means. Does it simply mean that the "packed" file is virtualized?

Also, thank you very much for uploading the version of String pools I need.

I'd like to learn how to modify your tools or PE parsing code, but I'm not sure how to contact you separately and pay for it. If you have any ideas, please let me know how to contact you privately, such as through d2scord.

And finally, I have a development version of KMS Localhost. I've imported the latest KMS and GMS chair data after removing all in/outlink/_hashes. However, when I sit on multiple chairs (or when changing maps after defeating a boss, etc.), the game crashes with an error related to "Insufficient memory resources, sound_dx8 scheduler." Is there a way to fix this persistent issue? If I could fix it, I'd be willing to pay for it.

(To: Site administrator, my English is not very good, so I'm using a translator. If there are any words that violate the rules, please let me know by sending me a message. Thank you.)
 
Image_803267732590968 - some localhost clients KMS/JMS/CMS/TWMS - RaGEZONE Forums
hi~ why unpacket/packet Maplestory.exe consumes 9%-10% CPU in CMS086 version, while other versions only use 1%-3%?
 
View attachment 290686hi~ why unpacket/packet Maplestory.exe consumes 9%-10% CPU in CMS086 version, while other versions only use 1%-3%?
CMS86~95(?) versions inlined many codes including anti cheats, it may be problem.
so CMS85 or before & CMS96 or later versions are recommended.
compiler was changed to VS2008 in CMS86, CMS85 or before used VS2006.
 
Back