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!

How to modify the name of the MapleStroy game window?

Initiate Mage
Joined
Jan 30, 2011
Messages
25
Reaction score
0
I tried to use IDA PRO and CE to find the base address to modify

But no effect

drKVFSK - How to modify the name of the MapleStroy game window? - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
432
If there is no localhost.exe, an error will occur

What do you mean? Make sure the .exe is unpacked or else you cannot modify it using STREDIT. For versions before GMS v83 (not sure exact ver) you have to use 'STREDIT Old'

Which version are you trying to edit?
 
Upvote 0
Initiate Mage
Joined
Jan 30, 2011
Messages
25
Reaction score
0
Gms 117

If it has protector MapleStory

How can I crack it?

Do not use localhost.exe on the network

Currently studying
 
Upvote 0
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
yea looking back at this, it doesn't work for most versions of this game, my bad

did some testing for you and the following procedure works on v95 and v203:
1. hook
2. check for lpClassName. the game creates multiple windows (StartUpDlgClass, NexonADBallon, MapleStoryClass).. the classname you're looking for is "MapleStoryClass"
3. change lpWindowName to whatever new title you want.
4. call the function. make sure to use the edited window name if the window being created is "MapleStoryClass".
your dll of course has to be injected before the game window is created

i hope you meant to say v95 through v203, even though this will work on all versions (iirc very old clients might've had diff class name tho)

anywho.. while i hook this for MapleStory2, in maple i just modify the application name internally by hooking nexon's stringpools. this is an alternative way to do it if you don't want to use detours hooking and instead just wish to memory edit the string. however, it's much easier to just hook a function and be done.. lol

pozxnm123 here's the code from my Orion2-Client project, you can hook this by using windows detours. if you don't know what you're doing, you could just use that project and strip out the MS2 bypasses and it'd work just fine.
PHP:
/* CreateWindowExA hook used to rename the main window */
bool Hook_CreateWindowExA(bool bEnable) {
	static decltype(&CreateWindowExA) _CreateWindowExA = &CreateWindowExA;

	decltype(&CreateWindowExA) CreateWindowExA_Hook = [](DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam) -> HWND {

		if (strstr(lpClassName, "MapleStory2")) {
			//NotifyMessage("Orion2 has loaded all data successfully!\r\n\r\nPress OK to launch the game~", Orion::NotifyType::Information);
			lpWindowName = "Orion2 - A New Beginning";
		}

		return _CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
	};

	return SetHook(bEnable, reinterpret_cast<void**>(&_CreateWindowExA), CreateWindowExA_Hook);
}

oh and also Kimberly you can't modify old clients through STREDIT OLD (unless that was a recent change), you're only able to view the strings. i was originally going to implement support for this myself until i figured out nexon stored them in the application's resources table.. screw that lmao
 
Upvote 0
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
432
oh and also @Kimberly you can't modify old clients through STREDIT OLD (unless that was a recent change), you're only able to view the strings. i was originally going to implement support for this myself until i figured out nexon stored them in the application's resources table.. screw that lmao
Eric v0.62 still uses STREDIT Old (unlike v83 that uses reg) and have always being able for many years to change strings with it. The only difference I could find personally is that OLD does not show IP's, as well as OLD not re-encrypting all the text values, making them readable with a hex editor after one edit (although, editting it that way will crash the client once the text is called...)
 
Last edited:
Upvote 0
Back
Top