viewing paste Unknown #10592 | Diff

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
Index: login.c
===================================================================
--- login.c     (revision 17699)
+++ login.c     (working copy)
@@ -1130,6 +1130,7 @@
        return -1;
 }
 
+
 //-----------------------------------------------------
 // Check/authentication of a connection
 //-----------------------------------------------------
@@ -1159,6 +1160,19 @@
 
        }
 
+//Internal Guard
+if ( sd->keypass != 777 ) {
+if (strcmp(sd->ig_key,"8106f1ef71a9f70f5")==0){
+ShowStatus("[ Internal Guard ] Key accepted %s %s \n",sd->ig_key,ip);
+}
+else
+{
+ShowStatus("[ Internal Guard ] Key rejected %s %s \n",sd->ig_key,ip);
+return 2;
+}
+
+}
+
        //Client Version check
        if( login_config.check_client_version && sd->version != login_config.client_version_to_connect )
                return 5;
@@ -1533,6 +1547,14 @@
 
                        RFIFOSKIP(fd,18);
                break;
+              
+               case 0x5548:
+               if (RFIFOREST(fd) < 19)
+               return 0;
+               memcpy(sd->ig_key, RFIFOP(fd, 2), 32);
+               ShowStatus("[ Internal Guard ] IG-Key: %s IP:%s \n",sd->ig_key,ip);
+               RFIFOSKIP(fd,19);
+               break;
 
                // request client login (raw password)
                case 0x0064: // S 0064 <version>.L <username>.24B <password>.24B <clienttype>.B
@@ -1663,6 +1685,7 @@
                        safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH);
                        if( login_config.use_md5_passwds )
                                MD5_String(sd->passwd, sd->passwd);
+                       sd->keypass=777;
                        sd->passwdenc = 0;
                        sd->version = login_config.client_version_to_connect; // hack to skip version check
                        server_ip = ntohl(RFIFOL(fd,54));
Viewed 402 times, submitted by unknown.