# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/lighta/Documents/Myscript/RO/Servs/rathena # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: src/common/md5calc.c --- src/common/md5calc.c Base (BASE) +++ src/common/md5calc.c Locally Modified (Based On LOCAL) @@ -16,6 +16,8 @@ #define UINT_MAX 4294967295U #endif +static const char MD5SALT[]="mykeyphrase"; + // Global variable static unsigned int *pX; @@ -238,3 +240,10 @@ output[i] = (char)(1 + rnd() % 255); } + +void MD5_StringSalt(const char * string, char * output) +{ + char passel[64+1]; + sprintf(passel, "%s%s", string, MD5SALT); + MD5_String(passel, output); +} Index: src/common/md5calc.h --- src/common/md5calc.h Base (BASE) +++ src/common/md5calc.h Locally Modified (Based On LOCAL) @@ -1,8 +1,10 @@ #ifndef _MD5CALC_H_ #define _MD5CALC_H_ -void MD5_String(const char * string, char * output); +//void MD5_String(const char * string, char * output); //only use obf for security reason void MD5_Binary(const char * string, unsigned char * output); void MD5_Salt(unsigned int len, char * output); +void MD5_StringSalt(const char * string, char * output); + #endif /* _MD5CALC_H_ */ Index: src/login/login.c --- src/login/login.c Base (BASE) +++ src/login/login.c Locally Modified (Based On LOCAL) @@ -267,7 +267,7 @@ char tmpstr[64+1], md5str[32+1]; safesnprintf(tmpstr, sizeof(tmpstr), "%s%s", str1, str2); - MD5_String(tmpstr, md5str); + MD5_StringSalt(tmpstr, md5str); return (0==strcmp(passwd, md5str)); } @@ -1432,7 +1432,7 @@ ShowStatus("Request for connection of %s (ip: %s).\n", sd->userid, ip); safestrncpy(sd->passwd, password, NAME_LENGTH); if( login_config.use_md5_passwds ) - MD5_String(sd->passwd, sd->passwd); + MD5_StringSalt(sd->passwd, sd->passwd); sd->passwdenc = 0; } else @@ -1486,7 +1486,7 @@ safestrncpy(sd->userid, (char*)RFIFOP(fd,2), NAME_LENGTH); safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH); if( login_config.use_md5_passwds ) - MD5_String(sd->passwd, sd->passwd); + MD5_StringSalt(sd->passwd, sd->passwd); sd->passwdenc = 0; sd->version = login_config.client_version_to_connect; // hack to skip version check server_ip = ntohl(RFIFOL(fd,54)); Index: src/map/script.c --- src/map/script.c Base (BASE) +++ src/map/script.c Locally Modified (Based On LOCAL) @@ -14328,7 +14328,7 @@ tmpstr = script_getstr(st,2); md5str = (char *)aMalloc((32+1)*sizeof(char)); - MD5_String(tmpstr, md5str); + MD5_StringSalt(tmpstr, md5str); script_pushstr(st, md5str); return 0; }