там она объявляется и вызывается.Я дошел до функций вида un2aUio2_exiXUX("T/9A6 /U7cA8EEE87")
вот эта функция, расшифрованная , с отключенной защитой и с заменой имен на более понятные:
PHP:
<?php
if (!function_exists("func"))
{
function func($data_array)
{
$data_array = base64_decode($data_array);
echo($data_array);
$func = 0;
$col = 0;
$i = 0;
$coef = (ord($data_array[1]) << 8) + ord($data_array[2]);
$index = 3;
$index2 = 0;
$divider = 16;
$out_data = "";
$file_leng = strlen($data_array);
$file = __FILE__;
$file = file_get_contents($file);
// $zasсhita = 0;
// preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv"), $file, $zasсhita);
// "LyhwcmludHxzcHJpbnR8ZWNobykv" соответствует регулярке "/(print|sprint|echo)/"
for (;$index<$file_leng;)
{
// if (count($zasсhita))
// continue;
if ($divider == 0)
{
$coef = (ord($data_array[$index++]) << 8);
$coef += ord($data_array[$index++]);
$divider = 16;
}
if ($coef & 0x8000)
{
$func = (ord($data_array[$index++]) << 4);
$func += (ord($data_array[$index]) >> 4);
if ($func)
{
$col = (ord($data_array[$index++]) & 0x0F) + 3;
for ($i = 0; $i < $col; $i++)
$out_data[$index2+$i] = $out_data[$index2-$func+$i];
$index2 += $col;
}
else
{
$col = (ord($data_array[$index++]) << 8);
$col += ord($data_array[$index++]) + 16;
for ($i = 0; $i < $col; $out_data[$index2+$i++] = $data_array[$index]);
$index++;
$index2 += $col;
}
}
else
$out_data[$index2++] = $data_array[$index++];
$coef <<= 1;
$divider--;
if ($index == $file_leng)
{
$file = implode("", $out_data);
$file = "?".">".$file."<"."?";
return $file;
}
}
}
}
eval(func("хекс код")); ?>
расшифровывается этой авто заменой (в unixstyle! , есть перeход на другую строку
PHP:
$_X = strtr($_X, 'SgPO9YZWFKmqyfxcjLJRzuM5vNts1b.{B4nC]i/2Dl0EheA
[d8=Qp>VXo H}6GIw7ka3TrU<',
'=R9odmplAEPyk8gv[53xrMezqZHi7YhD<WsC{>CcX}1N/afj6]JtuS G.BUnwVKLQO20ITF4b');
результирующий код проясняется, но всеравно слишком много ошибок
копайте дальше, я иссяк .