Red de conocimiento informático - Conocimiento informático - Cómo descifrar el cifrado y descifrado ofuscados de phpjm.net

Cómo descifrar el cifrado y descifrado ofuscados de phpjm.net

$file = 'plugin.php'; //archivo para crackear

$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){

$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>

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);

}

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);

}

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);

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;

} >