Поиск бекдоров

Архів · 2013 Файл є crash94 Статті 4 815

Архівний матеріал ya-cs.ru (2013). Російською. Плагіни й збірки можуть не працювати з ReHLDS та AMXX 1.10.

Поиск бекдоров

В данной статье я постараюсь вам рассказать как искать бекдоры в скомпилированных плагинах *.amxx

Для этого понадобится:
1. Программа amxxdump
2. Текстовой редактор
3. Мозг
4. 2 руки( Желательно )

Немного о amxxdump:
Это консольное приложение для просмотра исходного кода скомпилированого *.amxx файла. Сразу хочу сказать для некоторых личностей, что вы не получите готовый *.sma файл, а лишь дизассемблированный код плагина.

Начнем:
1. Скачиваем amxxdump ( Ниже )
2. Распаковываем его на Рабочий стол( Вместе в папкой )
3. Закидываем *.amxx файл в папку с amxxdump
4. Нажимаем Пуск-Выполнить. У вас появится окошко запуска программ. Пишем туда cmd

Поиск бекдоров

5. У вас откроется консоль выполнения команд. Нам нужно проложить путь до программы. Для этого нам нужно ввести несколько команд

Тебе скучно, не знаешь чем заняться любишь стрелять, играй стрелялки онлайн

1)cd Рабочий стол – ( Мы ведь положили программу на рабочий стол =) )
2)cd amxxdump – ( Открываем папку с декомпилятором )

Поиск бекдоров

6. Вот мы и подошли к самой декомпиляции. У нас есть 2 варианта просмотра. Первых это в самой консоле или же сохранить всё в txt и смотреть там. Думаю второй вариант будет для всех удобней.

Для начала мы будет просматривать функцию plugin_init, чтобы узнать все команды, различные функции. в 90% бекдор можно найти именно там

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

Вводим в консоль

amxxdump -l -j -e -E -D plugin_init backdoor_test.amxx > init.txt

Поясню.
amxxdump – Название файла запуска
-l – Показать номер строки и название файла у оператора BREAK.
-j – Показать метки для jump, switch и case таблиц.
-E – иИспользовать список параметров для стандартных вызовов native функций. Для работы необходимы .inc файлы.
-D <название> – Дизассемблирование указанной функции.
-j – Показать метки для jump, switch и case таблиц.
plugin_init – Смотрим функцию plugin_init
> init.txt – Сохранить всё в файл init.txt

Полный список команд:

-a - не показывать адресные положения.
-c - не показывать комментарии.
-x - список всех public и stock функций плагина и их параметры.
-n - список native функций, используемых в плагине.
-D <название> - дизассемблирование указанной функции.
-d - дизассемблировать код плагина.
-s - показать все символы.
-m - показать необходимые модули.
-r <название> - поиск информации об указанной функции.
-R <название> - поиск информации об указанной native функции.
-v <значение> - показать значение адреса в разделе данных.
-A <размер> - в дополнении к параметру -v, формирует дамп в зависимости от указанного размера ячеек.
-V <значение> - показать значение адреса в разделе данных в качестве строки.
-F <значение> - показать значение адреса в разделе данных в качестве числа с плавающей точкой.
-f - показать названия всех файлов, код которых включен в плагин (stock).
-l - показать номер строки и название файла у оператора BREAK.
-j - показать метки для jump, switch и case таблиц.
-e - попытаться сформировать данные от операторов push.c/const.pri.
-E - использовать список параметров для стандартных вызовов native функций. Для работы необходимы .inc файлы.
-N - не показывать рамзерность переменных, теги и стандартные значения. Подразумевает параметр -E.
-g - список всех глобальных переменных.
-h - скрыть номера параметров и их адреса.
-! - показать лицензию программы.
-? - помощь.

Поиск бекдоров

7. В папке с декомпилятором у нас появился текстовой файл init.txt с содержанием структуры функции plugin_init. Ну чтож, давайте рассмотрим его

Поиск бекдоров

Для тех, кто занимается скриптингом или же хотя бы работал с sma увидит на боли знакомые строки. Как видите никакой абракадабры. И что же мы видим? Ничего особенного, кроме консольной команды server_kill, но мы не знаем, что она выполняет и не будет пытаться пробовать у себя на сервере ведь так? Мы просто рассмотрим эту функцию, как рассматривали plugin_init.

8. Нам нужно запомнить куда обращается команда server_kill при вводе.В нашем случаи обработчиком этой команды является ServerKill

Вводим в консоль

amxxdump -l -j -e -E -D ServerKill backdoor_test.amxx > serverkill.txt

Поиск бекдоров

И как вы поняли у нас снова появился текстовой документ, но с названием serverkill.txt. Ну чтож рассмотрим его

Поиск бекдоров

Надеюсь многие поняли, что при выполнении данной команды ваш сервер выключится. Разумеется если вы найдете такое в каком нибудь *.amxx файле, то нужно удалить данный плагин с вашего сервера и постараться найти исходник данного плагина и компилировать самому.

На данном примере рассматривался САМЫЙ простой бекдор, который вы можете встретить.

Сейчас я приведу примеры, где следует искать:
register_clcmd
set_task
Просто запуск функций.К примеру Tralala()

Сейчас я приведу примеры, что вам следует искать:
server_cmd – Выполнения команд в консоль сервера
get_cvar_string – получение настроек( К примеру получение rcon_password )
set_user_flags – Присвоение административных флагов
Connect – Редирект
bind – Редирект и т.д

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

Я надеюсь вы уловили суть того, что предоставляет самой декомпиляция *.amxx и по такому же принципу вы сможете

Статья написана специально для сайта ya-cs.ru.
При копирование данной статьи ссылка на источник новости обязателен*

Мітки:

Коментарі 23

  1. by_nyasha

    Opo4uMapyТы такой предсказуемый, я так и думал что стрелки метать начнешь, с тобой общаться бессмысленно

    Відповісти

  2. Dim3DroLLL

    Opo4uMapy, ты бы ротик своё бы прикрыл, ведь в скайпе, может только и блокировать сразу.

    Відповісти

  3. StudenT

    Dim3DroLLL, тебе заняться нечем, чем х*йню всякую писать?
    Практически в каждой теме так, блядь, одни разборки, хоть я и сам троль, но уже начинает тошнить от этого всего.
    Если хочешь разборок, ну так иди в ЛС.

    Відповісти

  4. crash94

    не проще через AmxDisassembler ?

    Ты хоть знаешь, что из себя представляет данный софт? Или ты нашел первые же скрин софта и решил, что он лучше и проще? Это говно половину не отображает. Единственный плюс софта – гуи и только. Его можно и сюда прикрутить, только необходимости нет

    Відповісти

  5. Pain96

    Интересно, а есть возможность как то защитить свой плагин от это "шляпы" ? 🙂 ну тоесть зашифровать плагин чтобы этот amxxdump не прочел плагин 😀

    Відповісти

Ваш коментар

Коментар з’явиться після перевірки. E-mail не публікується.