Инструменты для разработки
Разработка внутриигровых ботов происходит на более низком уровне по сравнению с кликерами. В ней приходится оперировать простыми абстракциями ОС. Поэтому наши инструменты будут сложнее, чем в прошлой главе.
Язык программирования
В этой главе мы будем использовать только язык C++. Для компиляции и работы с кодом рекомендую вам бесплатную IDE Microsoft Visual Studio вместо открытого набора инструментов MinGW. Проблема в том, что MinGW плохо интегрируется с некоторыми Windows библиотеками (например dbghelp.dll
). Вы можете пробовать компилировать примеры этой главы с MinGW, но будьте готовы переключиться на Visual Studio IDE.
Не забудьте обновить Internet Explorer для того, чтобы использовать последнюю версию Visual Studio IDE.
Для доступа к Windows Native API и линковки с системной библиотекой ntdll.dll
вам понадобится [Windows SDK](https://docs.microsoft.com/en-us/previous-versions/visualstudio/windows-sdk/ms717358(v=vs.110)).
Отладчики
Отладчик – это инструмент для тестирования и поиска ошибок в приложениях. Обычно им пользуются разработчики программ для исправления своего кода. Однако у отладчиков есть возможности, которые оказываются полезными для исследования чужих приложений.
Бесплатный отладчик OllyDbg мы будем активно использовать на протяжении всей главы. Простой и понятный интерфейс пользователя является его главным преимуществом. Также OllyDbg предоставляет широкие возможности для анализа Windows приложений без исходного кода. Главный его недостаток заключается в поддержке только 32-битный приложений. Рекомендую вам использовать последнюю версию OllyDbg 2.0.
Отладчик с открытым исходным кодом x64dbg поддерживает и 32-битные, и 64-битные приложения. Некоторые возможности OllyDbg в нём отсутствуют, поэтому часть вычислений вам придётся делать самостоятельно. Я рекомендую использовать x64dbg только для отладки 64-битных приложений и OllyDbg в остальных случаях.
WinDbg – многоцелевой бесплатный отладчик для работы с пользовательскими приложениями, драйверами устройств, системными библиотеками и ядром ОС. Он предоставляет некоторые возможности недоступные в OllyDbg и x64dbg, а также поддерживает 32 и 64-битные приложения. Единственный серьёзный недостаток WinDbg заключается в неудобном пользовательском интерфейсе. Эта проблема частично решается с помощью настройки рабочего окружения, которая делает его визуально похожим на OllyDbg. К сожалению, большинство возможностей WinDbg всё равно будут доступны только из командной строки.
Для настройки рабочего окружения WinDbg выполните следующие действия:
Скачайте архив с настройкой.
Распакуйте полученный архив
windbg-workspace-master.zip
в папкуthemes
(темы) отладчика. Путь к ней по умолчанию:C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\themes
.Среди скопированных файлов найдите и запустите
windbg.reg
. Затем нажмите кнопку "Yes" в диалоге подтверждения.
После настройки окно WinDbg будет выглядеть как на иллюстрации 3-1.
Иллюстрация 3-1. Главное окно WinDbg после настройки рабочего окружения
Инструменты для анализа памяти
Помимо отладчика нам понадобится приложение для анализа памяти запущенного процесса.
Инструмент с открытым исходным кодом Cheat Engine предоставляет функции сканера памяти, отладчика и Hex-редактора (редактор бинарных файлов). Мы будем использовать Cheat Engine в основном как сканер для поиска адреса переменной в памяти процесса и модификации её значения. Более подробно этот инструмент описан в руководстве пользователя.
HeapMemView – бесплатный инструмент для анализа сегментов динамической памяти (heap, иногда переводится как "куча"), выделенных процессом. HeapMemView имеет две версии: для 32 и 64-битных приложений. В некоторых случаях он будет нам полезен.
Last updated