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!

[v83 client] Editing the login page

Experienced Elementalist
Joined
Mar 12, 2015
Messages
238
Reaction score
43
Hello again!

Everytime I seem to understand how client editing works, I come across a new problem in a while. This is such a time again D:

I would like to edit the login page a bit, mainly remove a few buttons that I do not use.
Few examples:
JMFJIO9 - [v83 client] Editing the login page - RaGEZONE Forums

YHnXwL1 - [v83 client] Editing the login page - RaGEZONE Forums


I know I can use stredit to change these links, but I want them removed all together.

Now what I've done so far:

In stredit I looked the buttons up:
Las Systos - [v83 client] Editing the login page - RaGEZONE Forums


Then naturally I went to IDA and looked for an id, 1349 is what I used:
Oh1gyG2 - [v83 client] Editing the login page - RaGEZONE Forums


2 occurences, but its quite obvious its the first one that I want.

rw0ZEwT - [v83 client] Editing the login page - RaGEZONE Forums


Now from my last post I know I cant just remove the push, this will cause a crash.
So I scrolled up (quite far) to find the function where its used in too check where that is being called:

0f3Ygzz - [v83 client] Editing the login page - RaGEZONE Forums


Now the actual problem, when I press x for that fucntion to see its calls I find 1 reference:

J8dhr0F - [v83 client] Editing the login page - RaGEZONE Forums


It looks like its in the middle of nowhere so I have no clue what to do.

Another problem is that ALL login buttons seem to be located within that function, so I guess if I disable that function all login functionality disappears, which is obviously something I do not want.

Hope you guys can help me again this time ^^
Eric Pipotron Kimberly
 

Attachments

You must be registered for see attachments list
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
432
Not sure if that works for these buttons, but if you make it a 1x transparent pixel it should disable the button function as well. Someone told me that in the past, but not sure if it really works. Very poor way to do it though if that works.
 
Upvote 0
Experienced Elementalist
Joined
Mar 12, 2015
Messages
238
Reaction score
43
We already tried that. The buttons are currently invisable, but you can still hover over them which makes the sound, and click on them. Removing them would be better.
 
Upvote 0
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
I had removed the buttons by accident by breaking their origins in the client so that they were rendered outside the dimensions of the login box so it would never be physically seen or activated. However, you should just remove the physical render/creation of the button from OnCreate. It should be close to wherever you found that StringPool call because it's going to find that image and assign it to a button for creation. Just view that in psuedo and look a few lines down for something that would use the reference of that decoded string. It'll most likely be a call to some function, and you can just nop that call instead.

Oh, and why would you remove the push for? You're pushing the stringpool index on to the stack so that the call below it would have a valid argument..
 
Upvote 0
Experienced Elementalist
Joined
Mar 12, 2015
Messages
238
Reaction score
43
Yeah I was saying I tried that before (in my other post with another thing) and I learned there that thats not possible.
I'm going to try what you've suggested now!



So I've tried to NOP a lot of 'call's

First one I tried was this:
Qezkqiw - [v83 client] Editing the login page - RaGEZONE Forums


Nopping this call gave me an invalid pointer crash
YSckui0 - [v83 client] Editing the login page - RaGEZONE Forums


I tried this because in pseudo code I saw the following:
vGX6tO - [v83 client] Editing the login page - RaGEZONE Forums


So I figured that sub_41CF93 was the call I had to disable.

After that didn't work out I kind of went full noob-like and tried to NOP any call function nearby 1 by 1, but that didn't work out great either.
 

Attachments

You must be registered for see attachments list
Upvote 0
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139

Try nopping this virtual call:
qDx6WoB - [v83 client] Editing the login page - RaGEZONE Forums


If done correctly, that should disable the creation of it. Also, see the 1003 parameter? That's the id of the button control. Below is the client enumeration for the other buttons (like 1002 above, and so on)

Code:
enum $4FB97631DE172D3F35DCBD58E2BAEB39
{
  ID_CTRL_TITLE_BT_LOGIN = 1000,
  ID_CTRL_TITLE_BT_EMAILSAVE = 1001,
  ID_CTRL_TITLE_BT_EMAILLOST = 1002,
  ID_CTRL_TITLE_BT_PASSWDLOST = 1003,
  ID_CTRL_TITLE_BT_NEW = 1004,
  ID_CTRL_TITLE_BT_HOMEPAGE = 1005,
  ID_CTRL_TITLE_BT_QUIT = 1006,
  ID_CTRL_TITLE_EDIT_ID = 1007,
  ID_CTRL_TITLE_EDIT_PASSWD = 1008,
};
 

Attachments

You must be registered for see attachments list
Upvote 0
Junior Spellweaver
Joined
Sep 16, 2017
Messages
156
Reaction score
36
Mmm, try to NOP everything between PUSH 0x545 (included) and PUSH 0x546 (excluded); removing only part of the button creation procedure would likely break things.

I don't have a way to test, currently, but that might work.


EDIT: I'm slow at typing. Eric's fix will likely work better, so you might wanna go for that one.
 
Upvote 0
Back
Top