Cómo descifrar el cifrado y descifrado ofuscados de phpjm.net
$fp = fopen($file, 'r');
$str = fread($fp, tamaño de archivo) ($archivo));
fclose($fp);
copiar($ archivo, '0_'.$archivo);
$n = 1 ;
mientras($n < 10){
$código = strdecode($str);
if($n == 1){ p>
$código = str_replace("__FILE__", "'0_$ archivo'", $código);
}
$reemplazar = '$decodificar'.$ n.'=trim';
if(strpos($code,'eval(') > 0){
$code = str_replace('eval(',$replace. '(',$código);
}else{
preg_ match("/@\\\\$(.*)\(\\$(. *), (. *)\(/isU", $código, $res);
$código = str_replace($res[3],"'$reemplazar",$código);
}
$code = preg_replace('/\$(.*)=false;(. *?) \(\);/', '', $code);
$código = preg_replace('/\|\|@\\$(. *?) \(\);/', '|| print("ok");', $código) ;
$code = destr($code);
$tmp_file = 'detmp'.$n.'.php';
file_put_contents($tmp_file , $código);
include($tmp_file);
$val = 'decodificar'.$n;
$str = $val; p> p>
desvincular($tmp_file);
if(strpos($str, ';? >') === 0){
$decodificar = $ str;
romper;
}
$str = " $n++;
}
$decodificar = preg_replace ("/^(.*)exit\('Acceso denegado'\); /", " $del = strrchr($decode, 'unset');
$decode = str_replace($ del, "\r\n?>", $decode);
file_put_contents($file.'.de.php' ,$decode);
unlink('0_' . $ archivo);
echo 'hecho';
/////////////
función val_replace($código, $val, $deval){
$code = str_replace('$'.$val.',', '$'.$deval.',', $code);
$código = str_replace('$'. $val.';', '$'. $deval.';', $código);
$código = str_replace('$'. $val.'=', '$'. $deval.'=', $código);
$código = str_replace('$'. $val.$val.'(', '$ '.$deval.'(', $código);
$código = str_replace('$'.$val.')','$'.$deval.')', $código) ;
$code = str_replace('$'. $val.'.' , '$'. $deval.'.' , $code);
$code = str_replace ('$'. $val.'/', '$'. $deval.'/', $código);
$código = str_replace('$'. $val.'>', '$'. $deval.$deval.'<',$código);
$código = str_replace('$'.$deval. '^', '$'. $deval. '^ ', $código);
$código = str_replace('$'.$val.'||', '$'. $deval. '||', $código);
$código = str_replace('($'.$val.','($'.$deval.', $código);
devuelve $código;
}
función fmt_code($código){
global $vals,$funs;
preg_match_all("/\$[0- 9a-zA-Z \[\]']+(,|;)/iesU", $código, $res);
foreach($res[0] as $v){
$ val = str_replace(array('$',', ',',';'), '', $v);
$deval = destr($val, 1);
$vals[$val] = $deval;
$code = val_replace($code, $val, $deval);
}
preg_match_all("/\\$[0-9a-zA-Z\ [\]']+=/iesU", $código, $res);
foreach($res[0] como $ v){
$val = str_replace(array('$', '='), '', $v);
$deval = destr($val, 1) ;
$vals[$val] = $deval;
$code = val_replace($code,$val,$deval);
} p>
preg_match_all("/function\s[0-9a-zA-Z\[\]]+\(/iesU", $código, $res);
foreach($res [0] como $v){
$val = str_replace(array('function ','('), '', $v);
$deval = destr( $val, 1);
$funs[$val] =
$deval;
$código = str_replace('función '.'(','función '.'(',$código);
$código = str_replace('=' .$deval. '(', '='.$deval.'(', $código);
$código = str_replace('return '.(','='.$deval.$ deval.(',$código);
}
Devuelve $código;
}
función strdecode($str){
$len = strlen($str);
$newstr = '';
for($i=0; $i<$len; $ i++){
$n = ord($str[$i]);
$newstr .= decodificar($n);
} p>
return $newstr;
}
función decodificar($dec){
if(($dec > 126 || $dec< 32) & & $dec<. >13 && $dec<>10){
return '['. $dec.']';
return chr($dec);
}
}
}
}
función destr($cadena, $val=0){
$k = 0;
$num = '';
$ n = strlen($cadena );
$code = '';
for($i=0; $i<$n; $i++){
if($str [$i] == '[' && ($cadena[$i+1]==1 || $cadena[$i+1]==2)){
$k = 1;
}elseif($str[$i] == ']' &&$k==1){
$num = intval($num); p>
if($val==1){
$num = 97 + fmod($num, 25);
}
$ código .= chr($num);
$k = 0;
$num = null;
}else{
if($k == 1){
$num .= $cadena[$i];
}else{
$código = $cadena. [$i];
}
}
}
devuelve $código;
} >