PVPGN Webregister 0.2 – 64 bites Hash generátor bug

Mivel már nem megy az a fórum ahol a Xorp Game Server által is futtatott Battle.Net server dolgait vitatják meg az emberek, ezért kénytelen vagyok egy fontos patch-et lejegyezni. Hátha még másnak is jól jöhet. Ugyanis a webregister amivel felhasználókat lehet felvenni a rendszerbe alapból csak 32 bites rendszer alatt generál helyes jelszavakat. Ha rajtam kívül más is akarna 64 bites rendszer alatt a MySQL-be a megadott hash-al generálni jelszavakat, az hamar szembesül vele hogy nem fog menni.

A megoldás persze egyszerű. A webregister index.php-ját kell megeditálnunk és egy kódrészletet kell kicserélnünk:

Before:
Code:
if (trim($_POST['password1']) == trim($_POST['password2'])) {
if (strlen(trim($_POST['password1'])) > 2) {
$passhash = pvpgn_hash(trim($_POST['password1']));
} else {
error(0,$language['shortpass'],"");
}
} else {
error(0,$language['passmismatch'],"");
}

After:
Code:
if (trim($_POST['password1']) == trim($_POST['password2'])) {
if (strlen(trim($_POST['password1'])) > 2) {
//bnetd hate uppercase
$password1 = strtolower(trim($_POST['password1']));
//if machine architecture is 64 bit use bnpass instead
if (php_uname('m') == "x86_64") {
//modify path to bnpass
$output = @exec("/usr/local/pvpgn/bin/bnpass -- $password1");
$output = ereg_replace('"','',$output);
$xpass = explode("=",$output);
$passhash = $xpass[1];
} else {
$passhash = pvpgn_hash($password1);
}
} else {
error(0,$language['shortpass'],"");
}
} else {
error(0,$language['passmismatch'],"");
}

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük