У каждого реверс-инженера, вирусного аналитика и просто исследователя со временем появляется устоявшийся набор утилит, которыми он постоянно пользуется для анализа, распаковки или кряка. В этом обзоре я поделюсь своей версией. Это будет полезно всем, кто еще не обзавелся своим набором и только приступает к изучению этой темы. Впрочем, и опытному реверсеру должно быть любопытно, что используют коллеги по цеху.
Отладка приложения — это неотъемлемая часть процесса исследования, инструмент, который всегда под рукой у реверсера. В современном мире отладчик должен поддерживать обе интеловские архитектуры — x64 и x86, из этого мы и будем исходить.
Также у нас должна быть возможность отлаживать код, который работает в режиме ядра. Такая нужда периодически возникает, особенно если ты намерен искать zeroday-уязвимости в ядре ОС или реверсить драйверы вирусов. Основных претендентов два: x64dbg и WinDbg. Первый отладчик работает в режиме user mode, второй может отлаживать код в режиме kernel mode.
x64dbg.com
Этот современный отладчик с весьма приятным интерфейсом — достойный преемник OllyDbg. Поддерживает обе архитектуры — x64 и x86, обладает массой полезнейших плагинов.
Да, безусловно, он не лишен недостатков — в нем до сих пор есть несколько неприятных багов. Однако он активно поддерживается и развивается. Разумеется, из-за того что отладчик работает в пользовательском режиме, он остается уязвимым для многих техник обнаружения отладки. Но этот минус отчасти компенсируется разнообразием плагинов для сокрытия отладчика.
У x64dbg есть встроенный декомпилятор, поддерживается отображение кода в виде графа, можно делать точки останова на чтение, запись, выполнение и доступ, имеется встроенная утилита реконструкции импортов (как x64, так и x86). В общем, что говорить — этот отладчик использовался в узких кругах для того, чтобы победить небезызвестную игровую защиту Denuvo, и успешно справляется с этой задачей!
В подборку не попал отладчик OllyDbg — по той причине, что он уже серьезно устарел. Он не поддерживает ни современные ОС, ни архитектуру x64. На официальном сайте приложения был анонс 64-битной версии и даже сообщалось о прогрессе в ее разработке, но сам сайт обновлялся в последний раз в 2014 году. Безусловно, с OllyDbg связана целая эпоха, но, по всей видимости, она прошла. Да и отладчиков kernel mode тоже поубавилось — разработчики забросили Syser Kernel Debugger, а он в свое время был преемником SoftICE.
Официальная страница
Если нужно отлаживать ядро или драйвер, то WinDbg нет равных. Этот отладчик поддерживает сама Microsoft, и он входит в состав Windows Driver Kit (WDK). На данный момент это самое актуальное и мощное средство отладки кода ядра. Здесь нет такого приятного интерфейса, как в x64dbg, но и выбора у нас немного — другие отладчики не работают в kernel mode.
WinDbg поддерживает удаленную отладку и умеет скачивать отладочные символы напрямую с серверов Microsoft. Чтобы быстрее настроить его для отладки ядра ОС внутри виртуальных машин, существует надстройка VirtualKD. Безусловно, начинать путь реверсера с WinDbg строго противопоказано, но, когда наберешься опыта и начнешь пробовать разные интересные вещи, он становится необходимостью.
Именно в WinDbg можно запросто посмотреть, как выглядят те или иные системные структуры, и легко дизассемблировать функции NTAPI. Конечно, им можно отлаживать и «обычные» приложения, но лично я предпочитаю распаковывать столь могучий инструмент только при крайней необходимости! 🙂
Сложно представить себе реверс без инструментов статического анализа кода. На сегодняшний день дела с дизассемблерами обстоят немногим лучше, чем с отладчиками, но все-таки можно выделить фаворитов в этой области. Признанный стандарт антивирусных лабораторий — это дизассемблер IDA Pro. Второе место по востребованности занимает фреймворк для реверс-инжиниринга Radare2 (хотя многие считают, что Radare2 не уступает IDA).
hex-rays.com/products/ida
Существует две версии IDA — платная (Pro) и бесплатная (Starter). Бесплатная версия урезана по количеству поддерживаемых архитектур — она понимает только x86, кроме того, она не поддерживает плагины. Платная версия лишена подобных ограничений: она поддерживает внушительное количество архитектур процессоров и позволяет подключать расширения.
В IDA есть встроенный отладчик, весьма простенький по набору функций, но к его самобытному интерфейсу придется приноровиться. Также IDA может быть укомплектован дополнением Hex-Rays — декомпилятором исходного кода приложения в код на C. Это полезнейшее дополнение, которое значительно ускоряет анализ программы.
В целом IDA — мощнейший и прекрасно отполированный инструмент, который развивался много лет. Жаль только, что профессиональная версия стоит в районе 500–1000 долларов в зависимости от вида лицензии и кому попало не продается. Кто попало в результате выкручивается как может. 🙂
Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке
1 год7190 р. Экономия 1400 рублей! |
1 месяц720 р. 25-30 статей в месяц |
Уже подписан?
Читайте также
Последние новости