Введение в реверсинг с нуля, используя IDA PRO
  • Initial page
  • Часть 1
  • Часть 2
  • Часть 3
  • Часть 4
  • Часть 5
  • Часть 6
  • Часть 7
  • Часть 8
  • Часть 9
  • Часть 10
  • Часть 11
  • Часть 12
  • Часть 13
  • Часть 14
  • Часть 15
  • Часть 16
  • Часть 17
  • Часть 18
  • Часть 19
  • Часть 20
  • Часть 21
  • Часть 22
  • Часть 23
  • Часть 24
  • Часть 25
  • Часть 26
  • Часть 27
  • Часть 28
  • Часть 29
  • Часть 30
  • Часть 31
  • Часть 32
  • Часть 33
  • Часть 34
  • Часть 35
  • Часть 36
  • Часть 37
  • Часть 38
  • Часть 39
  • Часть 40
  • Часть 41
  • Часть 42
  • Часть 43
  • Часть 44
  • Часть 45
  • Часть 46
  • Часть 47
  • Часть 48
  • Часть 49
  • Часть 50
  • Часть 51
  • Часть 52
  • Часть 53
  • Часть 54
  • Часть 55
  • Часть 56
  • Часть 57
  • Часть 58
  • Часть 59
  • Часть 60
  • Часть 61
  • Часть 62
  • Часть 63
  • Часть 64
  • Часть 65
  • Часть 66 - ч1
  • Часть 67
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub

Часть 33

PreviousЧасть 32NextЧасть 34

Last updated 4 years ago

Was this helpful?

Мы установим пару плагинов для WINDBG, которые будут помогать нам дальше при работе.

К сожалению эти плагины работают только в WINDBG, но если Вы запустите их в WINDBG, запущенном в IDA, они дадут сбой, возможно, потому что они конфликтуют с PYTHON, который включён в IDA, но мы будем использовать их в отдельном WINDBG, когда они нам понадобятся.

Мы будем копировать файлы, которые я приложил, в каталог WINEXT, который находится внутри каталога, где установлен WINDBG и установим библиотеку времени исполнения VCREDIST_X86.EXE.

Затем, я должен сконфигурировать переменные окружения моей системы.

Добавьте переменную PYTHONPATH, к которой я добавил каталог PYTHON. Затем, идёт точка с запятой, и затем папка WINEXT. В моём случае это выглядит так.

C:\PYTHON27;

C:\PROGRAM FILES (X86)\WINDOWS KITS\10\DEBUGGERS\X86\WINEXT

И в переменную PATH, которая уже существует, я добавляю в конце точку с запятой, а затем строку C:\PYTHON27\

Я убеждаюсь, что строка добавлена в конец списка. Также я добавляю эту строку в системные переменные.

Хорошо, после перезагрузки ПК или принудительного завершения проводника WINDOWS, мы уже можем ввести в любой консоли слово PYTHON и система должна нам ответить его приглашением.

И последнее — нужно загрузить последние версии следующих файлов:

и скопировать их в тот же каталог, где находится файл WINDBG.EXE

С этими настройками, скрипты уже должны работать. Давайте попробует запустить WINDBG, без IDA. Если он не запустится, то Вам нужна другая библиотека времени исполнения. Если нет, отладчик должен работать нормально.

С помощью CTRL + E мы открываем любой исполняемый файл.

Когда файл загрузится, мы вводим.

!LOAD PYKD.PYD

Ничего не случится, но и не должно появится ошибок.

С помощью команды !PY, я могу исполнять скрипты.

Здесь я могу также запускать команды PYTHON.

Сейчас я попробую запустить MONA. Я выхожу из консоли с помощью функции EXIT() и ввожу

!LOAD PYKD.PYD

!PY MONA

Давайте попробуем некоторые команды MONA:

!PY MONA MODULES

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

!PY MONA ROP

Это займёт немного времени. Попробуйте увидеть, есть ли здесь такой модуль, где можно создать ROP (позже мы увидим, что это такое) и попытаемся его создать.

Иногда Вы можете создать ROP, а иногда и нет, но по крайней мере, мы увидим, что команда работает.

Мы видим, что MONA подготовила ROP, но поскольку я не запускал WINDBG от имени администратора, она не смогла записать файл с результатом, но она всё равно его напечатала.

Мы можем проверить, если ли у MONA обновление в сети.

Сейчас я присоединяюсь к запущенному процессу. В моём случае, это приложение NOTEPAD++

Теперь я могу видеть состояние кучи.

Скоро мы рассмотрим это всё подробнее. В любом случае, WINDBG также имеет команды для работы с кучей без использования MONA, которые мы можем использовать внутри IDA.

Так что тут всё хорошо. В любом случае, если нам нужно, у нас есть несколько опцией, внутри, и вне IDA, и теперь у нас есть всё для продвижения вперед.

Попробуем ещё команды, для развлечения (MONA имеет их тысячи)

!PY MONA ASSEMBLE -S "JMP ESP"

!PY MONA GETIAT

Она действительно имеет много полезных команд, чтобы увидеть импортированные функции.

Удобно запускать MONA из-под пользователя АДМИНИСТРАТОР, чтобы сохранять информацию в файл. Мы можем получить также информацию об адресе, например так.

!PY MONA INFO -A АДРЕС

Хорошо. Мы немного отдохнули, и установили все необходимые инструменты для того, чтобы продолжать. Увидимся в 34 главе.

Автор оригинального текста — Рикардо Нарваха.

Перевод и адаптация на английский язык — IvinsonCLS.

Перевод и адаптация на русский язык — Яша Яшечкин.

Перевод специально для форума системного и низкоуровневого программирования - WASM.IN

27.02.2018

WINDBGLIB.PY:

MONA.PY:

https://github.com/corelan/windbglib/raw/master/windbglib.py
https://github.com/corelan/mona/raw/master/mona.py
Источник: ricardonarvaja.info
[Используемые материалы]