Jump to content

systemD2540

Members
  • Posts

    70
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by systemD2540

  1. This is patch for hecules

    Index: conf/login-server.conf
    ===================================================================
    --- conf/login-server.conf (revision 16125)
    +++ conf/login-server.conf (working copy)
    @@ -151,6 +151,9 @@
     //client_hash: 10, cb1ea78023d337c38e8ba5124e2338ae
     //client_hash: 99, disabled
     
    +//Internal Guard Key
    +internalguard_key: 69e87709f68374fe0
     
    +
     import: conf/inter-server.conf
     import: conf/import/login_conf.txt
    Index: src/login/login.c
    ===================================================================
    --- src/login/login.c (revision 16125)
    +++ src/login/login.c (working copy)
    @@ -26,6 +26,8 @@
     #include "../common/timer.h"
     #include "../common/utils.h"
     
    +char internalguard_key[256]; 
    +
     struct login_interface login_s;
     struct Login_Config login_config;
     struct mmo_char_server server[MAX_SERVERS]; // char server data
    @@ -1088,6 +1090,17 @@
      }
     
      }
    +
    +if ( sd->keypass != 467 ) {
    +if (strcmp(sd->ig_key,internalguard_key)==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 )
    @@ -1546,6 +1559,7 @@
      if( login_config.use_md5_passwds )
      MD5_String(sd->passwd, sd->passwd);
      sd->passwdenc = 0;
    + sd->keypass=467;
      sd->version = login_config.client_version_to_connect; // hack to skip version check
      server_ip = ntohl(RFIFOL(fd,54));
      server_port = ntohs(RFIFOW(fd,58));
    @@ -1642,6 +1656,14 @@
      return 0;
      login->parse_ping(fd, sd);
      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;
     
      // client md5 hash (binary)
      case 0x0204: // S 0204 <md5 hash>.16B (kRO 2004-05-31aSakexe langtype 0 and 6)
    @@ -1774,7 +1796,11 @@
      }
      else if(!strcmpi(w1, "log_login"))
      login_config.log_login = (bool)config_switch(w2);
    -
    + else if(!strcmpi(w1, "internalguard_key")) {
    +        ShowStatus("Internal Guard Protection active! \n");
    + safestrncpy(internalguard_key, w2, sizeof(internalguard_key));
    + ShowStatus("Internal Guard key > %s \n",internalguard_key);
    + }
      else if(!strcmpi(w1, "new_account"))
      login_config.new_account_flag = (bool)config_switch(w2);
      else if(!strcmpi(w1, "new_acc_length_limit"))
    Index: src/login/login.h
    ===================================================================
    --- src/login/login.h (revision 16125)
    +++ src/login/login.h (working copy)
    @@ -41,7 +41,8 @@
     
      uint8 client_hash[16];
      int has_client_hash;
    -
    + char ig_key[256];
    + int keypass;
      int fd;
     
      time_t expiration_time;
     
     
    I need it to be used in conjunction with rAthena well.
    Please help me about src Internal Guard Support my server and everyone
×
×
  • Create New...