В данной статье я постараюсь вам рассказать как искать бекдоры в скомпилированных плагинах *.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 и по такому же принципу вы сможете
При копирование данной статьи ссылка на источник новости обязателен*
Прекрасно
Воооот, это заебись =)
Отличная статья.
не проще через AmxDisassembler ?
Прикольно!
Opo4uMapy Для тебя все проще, а сделать ни чего не можешь
Соглашусь с орочимару, дисамблер проще)
и че за лох – 92 зделал?
-92 хахаа) как?
by_nyasha, нуб, вот ты не можешь
Opo4uMapyТы такой предсказуемый, я так и думал что стрелки метать начнешь, с тобой общаться бессмысленно
by_nyasha, если ты не знаешь нечего не пиши ок да?
Отличненько, молодец)
Opo4uMapy, ты бы ротик своё бы прикрыл, ведь в скайпе, может только и блокировать сразу.
Dim3DroLLL, да пошел нафиг, ты просто тупой человек
Opo4uMapy, Аргументируй, свои слова.
Dim3DroLLL, тебе заняться нечем, чем х*йню всякую писать?
Практически в каждой теме так, блядь, одни разборки, хоть я и сам троль, но уже начинает тошнить от этого всего.
Если хочешь разборок, ну так иди в ЛС.
Dim3DroLLL, герой?:D
Народ ничего такого, просто иногда нех*й делать 🙂
Ты хоть знаешь, что из себя представляет данный софт? Или ты нашел первые же скрин софта и решил, что он лучше и проще? Это говно половину не отображает. Единственный плюс софта – гуи и только. Его можно и сюда прикрутить, только необходимости нет
crash94, я им пользуюсь. Поверь он лучше…
После слов Уважаемого Романа, всётаки буду юзать dump
Интересно, а есть возможность как то защитить свой плагин от это "шляпы" ? 🙂 ну тоесть зашифровать плагин чтобы этот amxxdump не прочел плагин 😀