View Single Post
  #1  
Old 10-16-2009, 06:44 PM
Shin Noir's Avatar
Shin Noir
Legendary Member
 
Join Date: Apr 2002
Location: Seattle, WA
Posts: 502
Default 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
DungeonEQ.com
Reply With Quote