base64_decode and co

un tiot php pour les virer
 <?php
/**
* Nettoire les fichiers
*
* @param string $name
*/
function nettoieFichier($name){
//ouvre le fichier
$data = file_get_contents($name);
$count = 0;
$data = str_replace('eval(base64_decode(\'<------EDIT------>\'));','',$data,$count);

if($count!=0){
echo ' Patched ';
file_put_contents($name,$data);//ecrit le fichier
}
}

/**
* Parcours un repertoire
*
* @param string $repname
*/
function parcoursRep($repname){
$dir = opendir($repname);

//lit le repertoire
while (($file = readdir($dir)) !== false) {
//Si c'est unfichier
if(!is_dir($repname .'/'. $file)){
$extension1 = substr($file, -3, 3);
$extension2 = substr(strrchr($file,'.'),1);
//verifien si c'est une extension php
if($extension1==$extension2){
if($extension1=='php'){
echo "Traitement du fichier : $repname/$file";
nettoieFichier($repname.'/'.$file);
echo "\n<br>";
}
}
}else{//Si c'est un dossier
if($file!=".." && $file!='.'){
echo "Dir : $repname/$file \n<br>";
parcoursRep($repname .'/'. $file);
}
}
}
}

$dir = '.';//répertoire courant
parcoursRep($dir);
?> 
un tiot

find /var/www/ -iname « *.php » -exec fgrep « eval(base64_decode » -l \{\} \;

 

pour lister en ligne de co

find ./ -iname « *.php » -exec sed -i ‘/#a6f227#/,/6f227#/d’ {} \;

pour virer le motif en ligne de co