Seite 4 von 4

Verfasst: 27.03.2007 10:59
von CADwiesel
Ich habe mal angefangen ein Script zur entschlüsselung zu schreiben, aber irgendwie komme ich nicht zu dem gewünschten Erfolg.

Ich dachte es würde gehen, indem ich den text mit dem dazugehörigen privmsgs_bbcode_uid und einem zusätzlichen wert zwischen 0 und 2 in den Verschlüsselungsalghorythmus schicke, aber da lag ich wohl falsch.

Hier mal mein Ansatz, vielleicht kann mir ja da einer weiterhelfen.

Code: Alles auswählen

  <?php

function hex2bin($text) 
{ 
   $result = ''; 
   $decode[ 48]= 0; // 0 
   $decode[ 49]= 1; // 1 
   $decode[ 50]= 2; // 2 
   $decode[ 51]= 3; // 3 
   $decode[ 52]= 4; // 4 
   $decode[ 53]= 5; // 5 
   $decode[ 54]= 6; // 6 
   $decode[ 55]= 7; // 7 
   $decode[ 56]= 8; // 8 
   $decode[ 57]= 9; // 9 
   $decode[ 65]=10; // A 
   $decode[ 66]=11; // B 
   $decode[ 67]=12; // C 
   $decode[ 68]=13; // D 
   $decode[ 69]=14; // E 
   $decode[ 70]=15; // F 
   $decode[ 97]=10; // a 
   $decode[ 98]=11; // b 
   $decode[ 99]=12; // c 
   $decode[100]=13; // d 
   $decode[101]=14; // e 
   $decode[102]=15; // f 

   for($i=0;$i < bcdiv(strlen($text),2);$i++) 
   { 
    $result .= chr(($decode[ord(substr($text,$i*2,1))]*16)+$decode[ord(substr($text,($i*2)+1,1))]); 
   } 
return $result; 
} 

function make_key_array($keyint) 
{ 
   if ($keyint < 0) $keyint = bcpow(2,32) + $keyint; 
   for($i=31;$i>=0;$i--) 
   { 


     $test = bcpow(2,$i); 
     if ($keyint>=$test) 
      { 
       $bit = 1; 
       $keyint = $keyint - $test; 
      } 
      else 
      { 
       $bit = 0; 
      } 
     $key4[bcdiv($i,8)]=chr(ord($key4[bcdiv($i,8)])+bcpow(2,bcmod($i,8))*$bit); 
   } 
return array($key4[0],$key4[1],$key4[2],$key4[3]); 
} 

function xor_text($text,$keyint,$dir) 
{ 
   if ($dir == 2) $text = hex2bin($text); 
    
   $key = make_key_array($keyint); 
   $result = ''; 
   for($i = 0;$i < strlen($text);$i++) 
   { 
    $result .= chr(ord(substr($text,$i))^ord($key[bcmod($i,4)])); 
   } 

   if ($dir == 1) return bin2hex($result); else return $result; 
} 


//
//Datenbank Zugang
//
$benutzer = "root";          // Benutzername
$passwort = "";             // Passwort
$db = "popo";         // Name deiner Datenbank
$hostname = "localhost";  // Hostname, kann normalerweise so belassen werden.
 
 

 $link = mysql_connect("$hostname", $benutzer, $passwort);

 $res = mysql_db_query("$db", "select * from phpbb_privmsgs_text where privmsgs_text_id = 3753 ");

 while($row = mysql_fetch_array($res)){

    $msgkey = $row['privmsgs_key'];
    $bbcode_uid = $row['privmsgs_bbcode_uid'];
  $privmsg_text = $row['privmsgs_text'];
  
//   $result = xor_text($privmsg_text,$msgkey,2);
 $result = xor_text($privmsg_text,$bbcode_uid,2); 


}
//echo $privmsg_text;

echo $result;

?>
 

Verfasst: 02.04.2007 21:37
von CADwiesel
So ich habe den Fehler bei meinem Hoster gefunden:

Es waren nicht installierte Zusatzmodule nämlich die bc Bibliothek.
Sollte jemanden von Euch auch das Unterkommen, das plötzlich die PM Seite leer dargestellt wird, so poste ich hier die fehlenden Funktionen, die es Ermöglichen trotzdem die PM-Codierung zu nutzen.
Diese Funktionen müssen in die Datei functions_post.php am besten wie Beschrieben eingefügt werden:

Code: Alles auswählen


Suche nach:

function hex2bin($text) 

danach einfügen:

function bcpow($x,$y) 
{ 
   $pow = 1; 
   if ($y > 0) 
   { 
     for ($i=0;$i<$y;$i++) 
       { 
         $pow = $pow * $x; 
       } 
   } 
return $pow; 
} 

function bcmod($x,$y) 
{ 
$n=($x<0)?1:0; 
$x=abs($x); 
$y=abs($y); 
$temp = ($y==0)?'':$x - ($y * floor($x/$y)); 
return  ($n==1)? -1 * $temp:$temp; 
}

function bcdiv($x,$y) 
{ 
return floor($x/$y); 
}