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!

[Help] Skipping login screen?

Joined
Aug 6, 2005
Messages
550
Reaction score
296
Hello,

does anyone know if or how it's possible to skip the login screen when starting the game (season 6e3 gmo client)? Sending anything as login credentials would be okay, too...
Easiest for me would be to send some packets to the client as I'm not an expert in binary (exe) editing xD

Why do I need this? I would like to build something like "MU Offline" but with a very simple setup (no database etc.), based on my OpenMU project :w00t:
 
Skilled Illusionist
Joined
Jun 22, 2017
Messages
363
Reaction score
557
i think you can do that on server side, check something like ServerListSend,... and change it = LoginSuccessSend packet
 
Last edited:
Upvote 0
Joined
Aug 6, 2005
Messages
550
Reaction score
296
@cMu: The "Ultimate Launcher" doesn't seem to work with GMO Main.exe. It does start it with parameters "connect User Password", but the Login Dialog still shows up.
The original gmo client is a bit different I guess... it was started by a Browser Plugin which set the account id and disabled the textbox, BTW ;)
myheart: This doesn't work I guess... the packet which shows the login dialog contains the own player id which the client needs.
 
Upvote 0
Skilled Illusionist
Joined
Jun 22, 2017
Messages
363
Reaction score
557
the client doesn't required login box,
like reconnect system.
i think you can send packet ("login successful" = characters list send) to client .
and remove username and password recv in server.
and define one user and pass by default.
 
Upvote 0
Joined
Aug 6, 2005
Messages
550
Reaction score
296
well, you can’t compare reconnect system with the normal login screen... Even if you reconnect, the code walked through the login screen before. This sets some stuff (player id, game state) which might be required for the game to work correctly afterwards.

I watched a short tutorial about ollydbg and x32dbg on youtube and I think it might be possible to skip the screen by modifying the binary code. I already identified some function calls, e.g. sending a login request and the packet handling logic of the first packet which causes the login dialog to appear. I also found the address where the game stores the own player id. I think I could try several things to get it working soon :)
 
Upvote 0
Joined
Aug 6, 2005
Messages
550
Reaction score
296
My findings so far (client 1.04d gmo):
Addresses:
- Player ID: 0x87935A8
- Some state which gets set to 2 before log in dialog appears: 0x87935A4
- calling login function (see 0x0040B916):
push account name
push pw
call 0x009CF3B0

So I tried to do the following modifications:







Unfortunately, it didn't work - the login box still appears and no login packet is sent. I probably missed something :-/

EDIT: I missed that 0x009CF3B0 actually doesn't cause the login packet to be send... it actually happens somewhere in the calling function after 0x0040B916.
EDIT2: The packet gets constructed at: 0x0040B928 and following
and sent at: 0x0040BAA2 -> 0x00404D70

So, basically it should be possible to put a constructed login packet into memory and then to call 0x00404D70 instead of the code in my first picture.
 
Last edited:
Upvote 0
Don't be afraid to ask!
Loyal Member
Joined
Jun 2, 2012
Messages
1,454
Reaction score
252
cMu: The "Ultimate Launcher" doesn't seem to work with GMO Main.exe. It does start it with parameters "connect User Password", but the Login Dialog still shows up.
The original gmo client is a bit different I guess... it was started by a Browser Plugin which set the account id and disabled the textbox, BTW ;)
myheart: This doesn't work I guess... the packet which shows the login dialog contains the own player id which the client needs.

Ultimate Launcher doesntwork ,because ... you should handle the stuff in the "main dll" source.... Thats how I made it with my project. You give the information with parameteres and than handle it with the dll source.

There is an auto login script for TT files, thats what I copied.
 
Upvote 0
Joined
Aug 6, 2005
Messages
550
Reaction score
296
Okay, just in case someone is interested, I found a very very simple solution - a one byte change in the main.exe. :w00t::w00t::w00t:
At 0x0063CF12, instead of setting the value 0x02, I set 0x14. When this value gets set, the client is not showing the login box anymore, but is requesting the character list.
To get this working, the server side has to be adapted as well, because there is no login packet incoming anymore.
 
Upvote 0
Back
Top