Jump to content
Sign in to follow this  
mr.save

Набор программ для взлома программ. Выбираем инструменты для реверса

Recommended Posts

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

Отладчики

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

Также у нас должна быть возможность отлаживать код, который работает в режиме ядра. Такая нужда периодически возникает, особенно если ты намерен искать zeroday-уязвимости в ядре ОС или реверсить драйверы вирусов. Основных претендентов два: x64dbg и WinDbg. Первый отладчик работает в режиме user mode, второй может отлаживать код в режиме kernel mode.

x64dbg

x64dbg.com

Этот современный отладчик с весьма приятным интерфейсом — достойный преемник OllyDbg. Поддерживает обе архитектуры — x64 и x86, обладает массой полезнейших плагинов.

102008480_1(3).thumb.jpg.5a66b624b61198ecff4f8d822aab48d2.jpg

2038044546_2(2).thumb.jpg.6758efdca2c6d1a9049bf73b28b77ed9.jpg

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

У x64dbg есть встроенный декомпилятор, поддерживается отображение кода в виде графа, можно делать точки останова на чтение, запись, выполнение и доступ, имеется встроенная утилита реконструкции импортов (как x64, так и x86). В общем, что говорить — этот отладчик использовался в узких кругах для того, чтобы победить небезызвестную игровую защиту Denuvo, и успешно справляется с этой задачей!

Цитата

Почему не OllyDbg

В подборку не попал отладчик OllyDbg — по той причине, что он уже серьезно устарел. Он не поддерживает ни современные ОС, ни архитектуру x64. На официальном сайте приложения был анонс 64-битной версии и даже сообщалось о прогрессе в ее разработке, но сам сайт обновлялся в последний раз в 2014 году. Безусловно, с OllyDbg связана целая эпоха, но, по всей видимости, она прошла. Да и отладчиков kernel mode тоже поубавилось — разработчики забросили Syser Kernel Debugger, а он в свое время был преемником SoftICE.

WinDbg

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

1341313977_15(2).thumb.jpg.e74711a40712b27dfca00b973fa5cd63.jpg

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

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

 

Дизассемблеры

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

IDA Disassembler

hex-rays.com/products/ida

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

1578668541_4(1).thumb.jpg.20e3649493f191666f3f3ffcfec96de4.jpg

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

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

Radare2

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

1491323883_3(3).thumb.jpg.616ea0bbc714bb26ff5a7bee7e0cfcd5.jpg

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

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

 

Вспомогательные утилиты

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

Detect it Easy (DiE)

ntinfo.biz

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

1847250208_5(2).jpg.c9f2c0556ada6b7ea00db8e4ca871698.jpg

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

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

ExeInfoPE

exeinfo-pe.en.uptodown.com

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

1639666790_12(2).jpg.4d97860fad2ffba767639bc495bb77e1.jpg

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

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

HxD

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

1283336885_11(2).thumb.jpg.b84343acff3553d2efe31d075f80836f.jpg

HIEW

hiew.ru

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

1681008135_13(2).thumb.jpg.af1b64c3ecf0163caea7e192fc9e9ce4.jpg

Pestudio

winitor.com

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

1106011471_10(2).thumb.jpg.7c5244f90ab9e6d1e8be7cfdd98e805d.jpg

PE-bear

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

261747658_6(2).thumb.jpg.8de3b02665a0f4214421bcde7a049e73.jpg

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

Fakenet-NG

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

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

1530222401_14(2).thumb.jpg.0b76076bb7153742d838545d16b43a7e.jpg

ProcessExplorer

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

121147209_8(2).thumb.jpg.12384523bb5552108e50ef6d6aaa4238.jpg

RegShot

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

 

TCPView

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

1269236711_7(2).thumb.jpg.c0ac55865f15fdf54cb88fcb4fede699.jpg

Resource Hacker

angusj.com/resourcehacker

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

158370547_9(2).thumb.jpg.f4747f7436afe6c27636760ff7d2cc25.jpg

Итого

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

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

 

 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...