Лучшие программы для реверс-инжиниринга

лучшие программы реверс инженера

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

Еще по теме: Удаленная отладка вредоносных программ

Лучшие отладчики для реверс-инжиниринга

Каждый реверс-инженер в своем арсенале программ должен иметь отладчики, служащие для отладки приложений, т.к. это неотъемлемая часть процесса исследования. Одно из требований для отладчика на сегодняшний день — это поддержка архитектуры Intel как x64, так и x86.

Кроме того инструмент для отладки должен работать в режиме ядра, если возникает необходимость искать уязвимости нулевого дня в ядре ОС или вскрывать драйверы вирусов.

Я расскажу вам о двух интересных на мой взгляд отладчиках. Первая утилита — это x64dbg. Она работает в режиме user mode. Вторая — это WinDbg, которая может отлаживать код в режиме kernel mode.

x64dbg

Отладчик x64dbg поддерживает обе архитектуры — x64 и x86, содержит множество полезных дополнений и при этом имеет достаточно удобный интерфейс.

реверс программа
x64dbg
реверс программа
Встроенный декомпилятор

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

Программа имеет встроенный декомпилятор, поддерживает отображение кода в виде графа,также позволяет делать точки останова на чтение, запись, выполнение и доступ, содержит встроенную утилиту реконструкции импортов (как x64, так и x86).

К сказанному могу только добавить, что отладчик x64dbg успешно использовался для победы над знаменитой защитой от отладки Denuvo.

Весьма достойный преемник уже очень устаревшему отладчику OllyDbg.

Сайт x64dbg.com

Почему не OllyDbg

В нашу подборку лучших инструментов для реверес-инжиниринга не вошла программа отладки OllyDbg, так как не поддерживает современные ОС, а так же архитектуру x64. Конечно же, с OllyDbg связана целая эпоха, но, к моему большому сожелению, она прошла.

WinDbg

Если нужно отлаживать ядро или драйвер, то WinDbg нет равных. Этот отладчик поддерживает сама Microsoft, и он входит в состав Windows Driver Kit (WDK). На данный момент это самое актуальное и мощное средство отладки кода ядра. Здесь нет такого приятного интерфейса, как в x64dbg, но и выбора у нас немного — другие отладчики не работают в kernel mode.

реверс программа
WinDbg

WinDbg поддерживает удаленную отладку и умеет скачивать отладочные символы напрямую с серверов Microsoft. Чтобы быстрее настроить его для отладки ядра ОС внутри виртуальных машин, существует надстройка VirtualKD. Безусловно, начинать путь реверсера с WinDbg строго противопоказано, но, когда наберешься опыта и начнешь пробовать разные интересные вещи, он становится необходимостью.

Именно в WinDbg можно запросто посмотреть, как выглядят те или иные системные структуры, и легко дизассемблировать функции NTAPI. Конечно, им можно отлаживать и «обычные» приложения, но лично я предпочитаю распаковывать столь могучий инструмент только при крайней необходимости!

Отладка с помощью WinDbg

Лучшие дизассемблеры для реверс-инжиниринга

Сложно представить себе реверс без инструментов статического анализа кода. На сегодняшний день дела с дизассемблерами обстоят немногим лучше, чем с отладчиками, но все-таки можно выделить фаворитов в этой области. Признанный стандарт антивирусных лабораторий — это дизассемблер IDA Pro. Второе место по востребованности занимает фреймворк для реверс-инжиниринга Radare2 (хотя многие считают, что Radare2 не уступает IDA).

IDA Disassembler

Существует две версии IDA — платная (Pro) и бесплатная (Starter). Бесплатная версия урезана по количеству поддерживаемых архитектур — она понимает только x86, кроме того, она не поддерживает плагины. Платная версия лишена подобных ограничений: она поддерживает внушительное количество архитектур процессоров и позволяет подключать расширения.

реверс инжиниринг программ
IDA

В IDA есть встроенный отладчик, весьма простенький по набору функций, но к его самобытному интерфейсу придется приноровиться. Также IDA может быть укомплектован дополнением Hex-Rays — декомпилятором исходного кода приложения в код на C. Это полезнейшее дополнение, которое значительно ускоряет анализ программы.

В целом IDA — мощнейший и прекрасно отполированный инструмент, который развивался много лет. Жаль только, что профессиональная версия стоит в районе 500–1000 долларов в зависимости от вида лицензии и кому попало не продается. Кто попало в результате выкручивается как может.

Сайт IDA Disassembler

Radare2

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

реверс инжиниринг программ
Cutter + Radare2

Radare2 — это набор консольных утилит, в которые входят отладчик, дизассемблер, декомпилятор, hex-редактор, собственный компилятор, утилита сравнения бинарных файлов и многое другое. Для работы в GUI есть отдельная надстройка под названием Cutter. Она значительно улучшает внешний вид фреймворка и юзабилити Radare.

Фреймворк поддерживает большое число процессоров и платформ, благодаря этому может составлять конкуренцию даже таким продуктам, как IDA Pro. Огромный плюс — в том, что исходный код открыт, продукт совершенно бесплатен и поддерживается силами сообщества.

Сайт Radare2 

Вспомогательные утилиты для реверс-инжиниринга

Мы рассмотрели основные инструменты, но реверс сложно представить себе без анализаторов упаковщиков, сетевых мониторов, hex-редакторов и еще массы вспомогательных утилит. Давайте глянем на основные из них более подробно.

Еще по теме: Инструменты для реверсинга приложений Android

Detect it Easy (DiE)

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

реверс инжиниринг программы
DiE

Также в ней есть просмотрщик ресурсов с возможностью дампа на диск. Можно легко просматривать таблицу импорта, есть поддержка расширений и скриптов. Имеются и настройки методов сканирования сигнатур, просмотрщик заголовков файлов и полная поддержка форматов PE и PE+.

Минус только один — программа редко обновляется, но нельзя сказать, что ее забросили, — совсем недавно вышла новая версия!

Сайт Detect it Easy

ExeInfoPE

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

программы для взлома программ
ExeInfoPE

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

Ну и конечно, здесь присутствует весь стандартный набор возможностей: просмотрщик заголовков файлов, просмотр секций, hex-просмотрщик и даже некоторое количество маленьких встроенных утилит, типа TerminateProcess и прочего. Плюс есть поддержка плагинов.

Страница ExeInfoPE

HxD

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

реверс инжиниринг утилиты
HxD

Есть и другие удачные фичи — например, возможность надежного удаления файлов (то есть затирания нулями). А еще у HxD есть портативная версия, чтобы было удобно держать на флешке.

Сайт HxD

HIEW

Hex-редактор с давней историей, но до сих пор поддерживаемый разработчиками. У него есть платная и бесплатная версия (20 долларов без возможности обновлений, 200 долларов с пожизненными апдейтами).

реверс инжиниринг утилиты
HIEW

Интерфейс в стиле Norton Commander может немного испугать молодежь, но с ним быстро свыкаешься. Отдельно радует возможность работать только с клавиатуры, вызывая все функции по горячим клавишам.

Страница HIEW

Pestudio

Это полезная программа, заточенная под анализ малвари. Она автоматически сканирует загруженный образец файла на VirusTotal, интересно отображает используемые в подопытном приложении функции таблицы импорта, показывает вирусные признаки приложения, используемые библиотеки и информацию заголовка PE-файла.

реверс инжиниринг утилиты
Pestudio

Здесь же можно работать с ресурсами. Другими словами, это многофункциональный антивирусный комбайн начального анализа семплов.

Сайт Pestudio

PE-bear

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

реверс инжиниринг инструменты
PE-bear

У PE-bear приятный интерфейс и приятная утилита для сравнения файлов. Единственный недостаток — программа редко обновляется, хотя и имеет открытый исходный код. Так что, если найдете в ней баг, всегда можете поправить сами.

Страница PE-bear в блоге разработчика

Fakenet-NG

Эта программа необходима для того, чтобы эмулировать работу с сетью. При изучении семплов малвари часто нужно просматривать все сетевые обращения: следить за запросами к DNS и HTTP, снифать трафик и определять IP-адреса управляющих серверов (если это, например, бот-вымогатель). Виртуальная машина по понятным причинам должна быть отключена от сети, и, если вирус это заметит, он не будет делать все то, что обычно делает.

инструменты реверс инженера
Fakenet-NG

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

Репозиторий на GitHub

ProcessExplorer

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

реверс инжиниринг программы
ProcessExplorer

Кроме этого, можно узнать, какие динамические библиотеки подгружены в процессы, приоритеты, цифровые подписи, использование процессора и многое другое.

Официальная страница ProcessExplorer

RegShot

Удобная программа для мониторинга изменений в реестре. RegShot делает снимки до и после работы интересующего вас приложения, а потом показывает, где были изменения.

regshot описание

Подробнее про использование RegShot

TCPView

Маленькая программа для мониторинга сетевой активности приложений. Можно смотреть, какие порты открывает приложение (локальные и удаленные), а также протоколы, идентификаторы процессов и счетчики пересылаемых пакетов.

реверс инжиниринг программы
TCPView

В общем, один из полезнейших инструментов в любом хакерском наборе!

Официальная страница TCPView

Resource Hacker

Популярная программа для редактирования ресурсов. Позволяет редактировать манифест, иконки, текстовые диалоговые строки, информацию о курсоре и многое другое.

реверс инжиниринг программы
Resource Hacker

Редактировать ресурсы приложения приходится не так часто, но, если все же возникнет такая нужда, приятно иметь под рукой подходящий инструмент.

Сайт Resource Hacker

Итого

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

Многие реверсеры постепенно приходят к тому, что создают нужные узкоспециализированные программы, плагины и скрипты сами. Далеко не для всех задач есть готовые средства, облегчающие жизнь. Если знаете о подобных наработках или хотите поделиться ссылками на другие полезные программы — пишите в комментариях!

Еще по теме: Внедрение кода в чужое приложение с помощью Frida

ВКонтакте
OK
Telegram
WhatsApp
Viber

4 комментария

  1. Hanuman

    Хорошо анписано, приятно читать, но без практичекого примера ничего не даст.
    Я вот ищу, как внедрится в игру и щаставит ьпокаыват ьвсех врагов на крате по типу пабга, такого не нигде

  2. Lumpa

    Попробуй сначала в соусе покопаться. Некоторые игры просто не отсылают туман войны. А некоторые отсылают данные по сети как вариант можешь посмотреть как она работает из под localhost или послушать порт wireshark’ом посмотреть на дамп. Для поиска сегментов памяти с детства юзал cheat engine и artmoney. Простые и эффективные тулзы. Почитай про wallhack’и для cs или разбомби старенький один. Удачи)
    P.s. надеюсь хоть на какие-то мысли навёл

  3. Anna

    спасибо

  4. Alex

    Почему платная IDA а не бесплатная Ghidra или Visual DuxDebugger автор ??
    И да большинство легендарных в прошлом инструментов таких как PExplorer, OnlyDb , ResurceHacker 32-bit , что не отменяет их гибкости и универсальности .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *