x64dbg: отладчик для Windows
Что такое x64dbg
x64dbg — это бесплатный отладчик для 32- и 64-битных исполняемых файлов Windows. Он позволяет пошагово выполнять код, анализировать функции, изучать поведение программ, искать точки входа, API, строки и многое другое. Часто используется в реверс-инжиниринге, CTF, изучении малвари.
- ✅ Поддержка x86/x64
- ✅ Пошаговая отладка
- ✅ Поддержка скриптов (Assembly, Python через плагин)
- ✅ Расширяемый через плагины (Scylla, TitanEngine, Labeless и т.д.)
- ✅ Интеграция с IDA и Ghidra (Labeless, GhidraBridge)
Установка
- Скачать с официального сайта: https://x64dbg.com/
- Распаковать `x64dbg.zip`
- Запустить `x64dbg.exe` (для 64-bit) или `x32dbg.exe` (для 32-bit)
Интерфейс
| Панель | Назначение |
|---|---|
| CPU | Основное окно кода, регистры, флаги, команды |
| Memory Map | Отображение всех сегментов (код, данные, стек) |
| Stack | Текущий стек вызовов |
| Log | Вывод всех сообщений и событий |
| Symbols | Импортированные функции и таблицы |
| Breakpoints | Список установленных точек останова |
Основные клавиши
| Горячая клавиша | Описание |
|---|---|
| `F9` | Продолжить выполнение (Run) |
| `F8` | Шагнуть через (Step over / не заходить в call) |
| `F7` | Шагнуть внутрь (Step into) |
| `Shift+F7` | Шагнуть наружу (Step out) |
| `Ctrl+G` | Перейти к адресу |
| `Ctrl+B` | Установить/удалить breakpoint |
| `Ctrl+F` | Поиск (в памяти, строках, коде) |
Полезные команды
- `bp <addr>` — установить точку останова
- `bl` — список breakpoints
- `bd <n>` — отключить точку
- `be <n>` — включить точку
- `bc <n>` — удалить точку
- `dd <addr>` — просмотр данных
- `a <addr>` — ассемблировать код
- `u <addr>` — дизассемблировать
Пример анализа: HelloWorld.exe
1. Открыть файл
- Запустить `x64dbg.exe`
- `File → Open → HelloWorld.exe`
2. Пауза на EntryPoint
- Программа остановится на точке входа (обычно `ntdll!RtlUserThreadStart`)
- Нажми `F9` до входа в `main`
3. Перейти к main
- Когда попадешь в `.text` сегмент, появится читаемый код
- Ищи вызов `printf` или `MessageBox` — можно установить `Breakpoint`
4. Установить Breakpoint
- Выдели строку → `F2` или `Ctrl+B`
- Запусти снова (`F9`), выполнение остановится на этом месте
5. Просмотр регистров и стека
- В окне CPU ты увидишь значения регистров (`RAX`, `RBX`, `RCX` и др.)
- В Stack — стек вызовов
- В Memory — текст строки, путь к файлу и т.д.
6. Изменение кода на лету
- Правая кнопка по инструкции → Assemble → изменить команду
- Пример: заменим `cmp eax, 0` на `xor eax, eax`
7. Финиш
- Можно перезапустить, сохранить дамп, экспортировать ASM
Полезные плагины
- ScyllaHide — антианализ*