Реверс и отладка x64 [win]

2014-08-24T00:00:00
ID RDOT:3240
Type rdot
Reporter <Gh0St>
Modified 2014-08-24T00:00:00

Description

Всем привет!
В этой статье я хочу рассказать об инструментальных средствах отладки 64-х битных приложений под Windows, а именно об IDA Pro.

Не будет долгих речей и вступлений, перейдём сразу к делу.
При реверсе 32-х битных приложений, реверсеру предоставляется богатый выбор инструментальных средств, достаточно лишь упомянуть OllyDbg, IDA Pro, WinDbg, но при столкновении с x64 возникает вопрос: "Чем реверсить?".

Для начала нужно скачать IDA Pro Portable v6.1 (рисунок 1).


Рисунок 1 - Версия IDA Pro Portable

В папке IDA находится файл idag64.exe (рисунок 2). Именно он понадобится для реверса и отладки 64-х битных приложений.


Рисунок 2 - Файл idag64.exe

Сэмпл для тестирования представлен на рисунке 3.


Рисунок 3 - Сэмпл

Запускаем IDA Pro (idag64.exe). В главное окно перетаскиваем сэмпл. В появившемся окне "Load a new file" жмём кнопку "OK". Как видите 64-х битный файл успешно открыт (рисунок 4).


Рисунок 4 - Сэмпл в IDA Pro

Это касаемо реверса, но возникает другой вопрос: "Как отлаживать?".
В папке IDA находится файл win64_remotex64.exe, который является удалённым отладчиком (рисунок 5).


Рисунок 5 - Файл win64_remotex64.exe

Запустив этот файл увидим следующее окно (рисунок 6). На локальном компьютере запускается debug server на порту 23946.


Рисунок 6 - Удалённый отладчик

Возвращаясь в IDA Pro, выбираем пункт меню Debugger -> Select debugger или просто жмём F9 (рисунок 7).


Рисунок 7 - Меню "Выбор отладчика" в IDA Pro

В появившимся окне "Select a debugger" выбираем "Remote Win32 debugger" и жмём кнопку "OK" (рисунок 8).


Рисунок 8 - Окно "Выбор отладчика" в IDA Pro

В меню Debugger появились новые пункты, выбираем Debugger -> Process options (рисунок 9).


Рисунок 9 - Меню "Параметры процесса"

В появившимся окне в поле "Hostname" указываем адрес 127.0.0.1 и жмём кнопку "OK" (рисунок 10). ВАЖНО: полный путь сэмпла не должен содержать символов кириллицы. Проще говоря: всё по-английски.


Рисунок 10 - Параметры отладчика

Теперь всё готово. Не забудьте установить точку останова (breakpoint) на начало программы выбором нужной инструкции и нажатием клавиши F2. Для начала отладки щёлкните по кнопке запуска отладчика (рисунок 11) или просто нажмите F9.


Рисунок 11 - Кнопка запуска отладчика

Сэмпл запустился в отладке, выполнение остановилось на точке останова, управление отладчиком представлено в пункте меню Debugger (рисунок 12).


Рисунок 12 - Сэмпл в отладке

На этом всё.
Спасибо за внимание!