2010-08-25 6 views
0

J'essaye actuellement de décoder un fichier PHP crypté en base64, mais sans aucune chance. Quelqu'un pourrait-il aider?base64 decryption

http://pastebin.com/QmCdtDne

Merci

+0

Je suppose que c'est [une sorte de ver] (http://stackoverflow.com/search?q=eval+gzinflate+%22base64_decode % 22). – kennytm

+3

-1 et Vote pour fermer parce que les questions comme celles-ci sont habituellement 1) une blague, avec le message décodé étant "Hello Stack Overflow" ou 2) un logiciel protégé contre la copie que quelqu'un veut utiliser sans payer. Si cela est vraiment le cas, veuillez ajouter quelques détails sur l'origine de ce fichier. –

+1

Et à tous ceux qui sont novices en PHP et qui veulent toujours essayer, assurez-vous de ne pas exécuter 'eval()' dans votre environnement local. –

Répondre

0

Ce ne décodera pas complètement. Adaption laissé comme exercice pour vous (ce n'est pas me donner le forum code):

$text = file_get_contents("b64"); 
while (preg_match("/([\w\(]+)['\"](.+)['\"]/ims", $text, $uu)) { 
    list($old, $funcs, $text) = $uu; 
    foreach (array_reverse(explode("(", $funcs)) as $func) { 
    if (in_array($func, array("base64_decode", "gzinflate", "gzdecode", "gzuncompress", "str_rot13"))) { 
     $text = $func($text); 
    } 
    } 
    print "$funcs\n"; 
} 
print $text; 
0

Il dit (après 277 evals):

?><?php 
/***************************************************************/ 
/* Call Custom Page Variables         */ 
/***************************************************************/ 

require CWZ_FILES ."/inc/page-constants.php"; // Group Slider Gallery 

/***************************************************************/ 
/* Call Custom Page Variables *END*       */ 
/***************************************************************/ 
?> 

<?php if($DYN_hidecontent!="yes") { ?> 

    etc. 

quoi que cela signifie. Le reste a déjà été posted by vlad.

script utilisé:

$code = file_get_contents('QmCdtDne.txt'); 
$done = 0; $level = 0; 
while(! $done) { 
    $stuff = preg_split('/\'/', $code, 3); 
    $code = $stuff[1]; 
    $decoder = preg_split('/\(/', $stuff[0]); 
    foreach(array_reverse($decoder) as $cmd) { 
     switch($cmd) { 
      case 'base64_decode': $code = base64_decode($code); break; 
      case 'str_rot13': $code = str_rot13($code); break; 
      case 'gzinflate': $code = gzinflate($code); break; 
      case '<? eval': 
      case '?><? eval': 
       printf("eval level %02d, length: %d", ++$level, strlen($code)); 
       break; 
      case '': break; 
      default: $done = 1; break; 
     } 
    } 
    foreach(array_reverse($decoder) as $cmd) print(", $cmd"); 
    print "\n"; 
    if(! count($decoder) || $level >= 277) $done = 1; 
} 
echo $code; 

Cordialement

RBO