EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Server Code Submissions (https://www.eqemulator.org/forums/forumdisplay.php?f=669)
-   -   lowername bypass check (https://www.eqemulator.org/forums/showthread.php?t=29812)

Shin Noir 10-16-2009 06:44 PM

lowername bypass check
 
Someone directed me on how to make a lowercase name, you create e.g. "Ttest", and move the cursor the capital T, and remove it, and now it'll be "test", to be submitted.
Here is a name approval request for lowercase with latest SVN:
Code:

[Debug] [WORLD__CLIENT] myloginname: Name approval request.  Name=test, race=Barbar
ian, class=Beastlord
[Debug] [WORLD__CLIENT] myloginname: Character creation request from myloginname LS#13
9499 (127.0.0.1:50255) :
[Debug] [WORLD__CLIENT] myloginname: Name: test
[Debug] [WORLD__CLIENT] myloginname: Race: 2  Class: 15  Gender: 1  Deity: 208  Sta
rt zone: 2
[Debug] [WORLD__CLIENT] myloginname: STR  STA  AGI  DEX  WIS  INT  CHA    Total
[Debug] [WORLD__CLIENT] myloginname: 103  125  87  70  80  60  60    585
[Debug] [WORLD__CLIENT] myloginname: Face: 1  Eye colors: 0 0
[Debug] [WORLD__CLIENT] myloginname: Hairstyle: 0  Haircolor: 0
[Debug] [WORLD__CLIENT] myloginname: Beard: 0  Beardcolor: 0
[Debug] [WORLD__CLIENT] Validating char creation info...
[Debug] [WORLD__CLIENT] Found 0 errors in character creation request

So I added this patch:
Code:

Index: world/client.cpp
===================================================================
--- world/client.cpp        (revision 1014)
+++ world/client.cpp        (working copy)
@@ -1092,7 +1092,14 @@
 
        int stats_sum = cc->STR + cc->STA + cc->AGI + cc->DEX +
                cc->WIS + cc->INT + cc->CHA;
-
+        //Shin: clean the capitalization of the name BEFORE request check
+        for (i = 0; name[i] && i < 63; i++)
+        {
+                if(!isalpha(name[i]))
+                        return false;
+                name[i] = tolower(name[i]);
+        }
+        name[0] = toupper(name[0]);
        in.s_addr = GetIP();
        clog(WORLD__CLIENT,"Character creation request from %s LS#%d (%s:%d) : ", GetCLE()->LSName(), GetCLE()->LSID(), inet_ntoa(in), GetPort());
        clog(WORLD__CLIENT,"Name: %s", name);
@@ -1119,18 +1126,8 @@
        InitExtendedProfile(&ext);
 
        strncpy(pp.name, name, 63);
-        // clean the capitalization of the name
-#if 0        // on second thought, don't - this will just make the creation fail
-// because the name won't match what was already reserved earlier
-        for (i = 0; pp.name[i] && i < 63; i++)
-        {
-                if(!isalpha(pp.name[i]))
-                        return false;
-                pp.name[i] = tolower(pp.name[i]);
-        }
-        pp.name[0] = toupper(pp.name[0]);
-#endif
 
+
        pp.race                                = cc->race;
        pp.class_                        = cc->class_;
        pp.gender                        = cc->gender;

And here's what it says, when I try to register 'test' again.

Code:

[Debug] [WORLD__CLIENT] myloginname: Logged in. Mode=(CharSel)
[Debug] [WORLD__CLIENT] myloginname: LS Account #139499
[Debug] [WORLD__CLIENT] myloginname: Delete character: test
DeleteCharacter: successfully deleted 'test' (id 52)
[Debug] [WORLD__CLIENT] myloginname: Name approval request.  Name=test, race=Barbar
ian, class=Beastlord
[Debug] [WORLD__CLIENT] myloginname: Character creation request from myloginname LS#13
9499 (127.0.0.1:62850) :
[Debug] [WORLD__CLIENT] myloginname: Name: Test
[Debug] [WORLD__CLIENT] myloginname: Race: 2  Class: 15  Gender: 1  Deity: 208  Sta
rt zone: 2
[Debug] [WORLD__CLIENT] myloginname: STR  STA  AGI  DEX  WIS  INT  CHA    Total
[Debug] [WORLD__CLIENT] myloginname: 103  125  87  70  80  60  60    585
[Debug] [WORLD__CLIENT] myloginname: Face: 2  Eye colors: 0 0
[Debug] [WORLD__CLIENT] myloginname: Hairstyle: 0  Haircolor: 0
[Debug] [WORLD__CLIENT] myloginname: Beard: 0  Beardcolor: 0
[Debug] [WORLD__CLIENT] Validating char creation info...
[Debug] [WORLD__CLIENT] Found 0 errors in character creation request
[Status] Start zone query: SELECT x,y,z,zone_id,bind_id FROM start_zones WHERE p
layer_choice=2 AND player_class=15 AND player_deity=208 AND player_race=2

my char logs in with a capitalized name.

I whipped this out VERY FAST, may have some logical errors or some overlook since I'll admit - I don't understand the character creation process.. But, instead of taking the time of figuring out every possibility, it seems to work, i'll submit, we can go from there. :)

Shin Noir 10-16-2009 06:59 PM

Things I've tested:
add a name via "test", and it gets created as Test,
Then create another person named "test", and see if rejects due to duplicate name : Rejected name (good)

So_1337 10-19-2009 06:00 PM

Was it phorest? =P

Lillu 10-20-2009 03:33 AM

Quote:

Originally Posted by So_1337 (Post 180278)
Was it phorest? =P

lol, most probably! but where is he anyways? he bailed for a while now :(
(sry for the offtopic)


All times are GMT -4. The time now is 06:35 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.