J'essaye actuellement de décoder un fichier PHP crypté en base64, mais sans aucune chance. Quelqu'un pourrait-il aider?base64 decryption
Merci
J'essaye actuellement de décoder un fichier PHP crypté en base64, mais sans aucune chance. Quelqu'un pourrait-il aider?base64 decryption
Merci
Un scénario extrêmement simple http://pastebin.com/g2n8kxeZ
278 runs plus tard (environ 2 minutes) - le fichier original - http://pastebin.com/eyiycRkB
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;
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
Je suppose que c'est [une sorte de ver] (http://stackoverflow.com/search?q=eval+gzinflate+%22base64_decode % 22). – kennytm
-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. –
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. –