Идёт поиск...
Текущий файл: "; } else $iframe = ''; ?>

Поиск заражённых файлов php

Пример скрипта, описанного в блоге: http://dev.1c-bitrix.ru/community/blogs/howto/1051.php

Папка для поиска:
Введите искомый текст (текст вируса):

печать списка в файл
удаление из всех файлов найденного текста, исходные файлы переименовываются в [имя].orig
обратное переименование из *.php.orig файлов с вирусом в .php
10) { if (!defined('BREAK_POINT')) define('BREAK_POINT', $path); return; } if (defined('SKIP_PATH') && !defined('FOUND')) // проверим, годится ли текущий путь { # /bitrix/components/bitrix/forum/message # /bitrix/components/alpha - годится # /bitrix/components/alpha/beta - не годится if (0!==strpos(SKIP_PATH, dirname($path))) // отбрасываем имя или идём ниже return; if (SKIP_PATH==$path) // путь найден, продолжаем искать текст define('FOUND',true); } if (is_dir($path)) // dir { $dir = opendir($path); while($item = readdir($dir)) { if ($item == '.' || $item == '..') continue; Search($path.'/'.$item); } closedir($dir); } else // file { if (!defined('SKIP_PATH') || defined('FOUND')) { if (substr($path,-4) == '.php') { $str = file_get_contents($path); $str = str_replace("\r\n","\n",$str); if (false !== strpos($str,CODE)) Mark($path, $str); } elseif ($_REQUEST['restore'] && substr($path, -9) == '.php.orig') rename($path,substr($path,-5)); // отрезаем 5 символов справа: .orig } } } function Mark($file, $str) { static $res; if (!$res) $res = fopen(LOG,'ab'); if (!$res) die('no permissions: '.LOG); if ($_REQUEST['cure']) { if (!copy($file,$file.'.orig')) die('no permissions: '.$file); $f = fopen($file,'wb'); if (!$f) die('no permissions: '.$file); fwrite($f, str_replace(CODE,'',$str)); fclose($f); } fwrite($res,substr($file,strlen(START_PATH))."\n"); } ?>