x64dbg - обзор, введение в интерфейс, настройка

Программа имеет открытый исходный код, интуитивно понятный пользовательский интерфейс, полнофункциональную отладку DLL и EXE, IDA-like боковой панели, IDA-like выделения регистров, возможность полностью настроить цветовую схему, быстрый дизассемблер, поддержку плагинов, встроенный ассемблер.


x64dbg (x64dbg.com) – современный отладчик с открытым исходным кодом. В отличие от ollydbg, вы можете использовать x64dbg для отладки как 32-битных, так и 64-битных приложений. Он имеет простой в использовании графический интерфейс с поддержкой русского языка. Возможности (x64dbg.com/#features).


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


1. Окно дизассемблирования показывает дизассемблирование всех инструкций отлаживаемой программы. Это окно представляет дизассемблирование в линейном режиме и синхронизируется с текущим значением регистра указателя инструкции (eip или rip).

Окно дизассемблирования делится на 5 колонок: графические указатели, регистровые и указатели на точку останова — первое, адреса памяти, шестнадцатеричное представление команды, ассемблерное представление команды и комментарии отладчика (или ваши комментарии).

Вы можете отобразить схему потока управления, нажав горячую клавишу G. Условные переходы используют зеленые и красные стрелки. Зеленая стрелка указывает, что переход будет выполнен, если условие выполнено, а красная стрелка означает, что переход не будет выполнен. Синяя стрелка используется для безусловных переходов, а цикл обозначен синей стрелкой вверх (назад):


2. Окно стэка: в данном окне отображается содержимое стэка по мере выполнения программы. В стэк могут помещаться как адреса, так и какие-то строковые, числовые значения и другие значения. Аргументы функций также помещаются в стэк перед вызовом самой функции. Некоторые упаковщики кладут в стэк адрес на OEP (оригинальную точку входа).

3. Окно регистров: в этом окне отображается текущее состояние регистров процессора. Значение в регистре можно изменить, дважды щелкнув по регистру и введя новое значение. Вы можете также включить или выключить биты флага, дважды щелкнув на значениях битов, тем самым изменив поведение условных переходов, например. Изменить значение указателя инструкции (eip или rip) нельзя. Измененные регистры отладчик подсвечивает красным цветом.

4. Окно дампа: отображает стандартный шестнадцатеричный дамп памяти. Можно использовать окно дампа для проверки содержимого любого действительного адреса памяти в отлаженном процессе.

Оптимальная настройка отладчика
Первым делом необходимо переименовать сам .exe файл отладчика, это обезопасит нас от некоторых антиотладочных приемов. Оптимальные настройки для моих нужд такие:




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

Плагины
Плагины, без которых вам вряд ли удастся обойтись:
[Download] ScyllaHide by Aguila & cypher: Плагин анти-анти-отладки пользовательского режима с открытым исходным кодом;
[Download] TitanHide by mrexodia: Плагин анти-анти-отладки в режиме ядра с открытым исходным кодом. С установкой этого плагина вам придется очень сильно запариться. Необходимо будет установить специальный драйвер и отключить проверку цифровой подписи драйверов, иначе винда у вас будет крашиться каждые 10 минут.
[Download] xAnalyzer by ThunderCls: Этот плагин анализирует вызовы функций, чтобы добавить дополнительную информацию, что-то близкое к тому, что в OllyDbg.
[Download] xHotSpots by ThunderCls: Этот плагин предназначен для предоставления пользователю возможности доступа к определенным точкам отлаженного приложения при вычислении адресов событий, что позволяет перехватывать такие точки, чтобы остановить выполнение непосредственно перед выполнением этих событий. Используется для установки точек останова на вызов функций графических элементов (например, нажатие кнопки).
Comments