На белом свете появилась новая программа для взлома игр — Detective Story. Извините... я хотел сказать — утилита для исправления ошибок разработчиков вроде малого количества денег в играх. Написана она вашим покорным слугой и автором этой статьи. Нескромно? А никто и не обещал, что кто-то будет скромничать. А вот поддержать отечественного производителя не только никогда не поздно, но еще и не всегда рано. Кроме русскоязычности, в рассматриваемой утилите есть множество других преимуществ перед прочими программами подобной направленности: простой, инстинктивно понятный интерфейс, множество добавлений для пущего удобства пользователя, она как будто специально предназначена для ввода шестнадцатиричных кодов из рубрики "КОДекс" (особо нетерпеливым смотреть в конец статьи). Добавьте ко всему "хит сезона" — возможность вернуться к предыдущему поиску! То, чего нет даже в Magic Trainer Creator. Да и неудобно тем же Magic Trainer Creator пользоваться, когда единственно необходимым является введение hex-кода: программа слишком громоздка. А в Detective Story все предельно просто. Запустил ехе-шник, ввел адрес и наслаждайся результатом.
Верх... Итак, давайте запустим утилиту и рассмотрим повнимательнее главное окно. Сразу же бросается в глаза панель инструментов (если нет, убедитесь в наличии монитора). На ней имеются следующие кнопки: 1 — создать новую таблицу адресов; 2 — открыть таблицу адресов с диска;
3 — сохранить текущую таблицу адресов; 4 — выбрать процесс для взлома (исправления ошибок). В появившемся окне следует выбрать один из процессов и нажать ОК. После выбора процесса становятся доступными кнопки 5 и 6; 5 — сохранить память выбранного процесса на диск (если нужно); 6 — ручная блокировка (если у вас стоит флажок автоблокировки в опциях, то использовать не нужно); 7 — первый поиск. В появившемся окне настроек поиска можно выбрать вид поиска (точное значение или диапазон значений), тип искомого числа (long (4 bytes) наиболее распространен) и ввести собственно искомые числа. Обратите внимание на кнопки "-" и "+" около полей для ввода числа — для целых чисел они означают наименьшее и наибольшее числа соответственно. То есть, если нужно найти числа, меньше либо равные 1, то делаем так: выбираем "диапазон значений", в первом поле жмем на "-", а во втором вводим "1". Флаг "Проверить не только главный модуль" отвечает за область поиска. Рекомендуется держать его в неотмеченном состоянии — так поиск выполняется намного быстрее, но если не удается найти нужное значение, то можно попробовать начать новый поиск с отмеченным флажком, обычно помогает; 8 — поиск дальше. Эта кнопка отсеивает адреса по введенным условиям. Появившееся окно совпадает с предыдущим; 9, 10 — эти кнопки служат для предотвращения попыток ударить клавиатурой в монитор и выкинуть мышь в окно. Непонятно? Представьте: вы уже минут 20 отсеиваете непокорный адрес с деньгами. Конец мучений близок, но тут вы вводите не то число, и, ясное дело, получаете 0 адресов. Все старания насмарку, и возникают "те самые" желания. Восьмая кнопочка вернет вас на один поиск назад, а девятая — вперед (если вы случайно нажали на восьмую). Пользоваться обеими можно неограниченное число раз; 11 — настройки. Здесь можно настроить количество показываемых адресов, максимальное количество найденных, частоту обновления и заморозки значений, а также установить/снять упомянутый выше флажок автоблокировки (она увеличивает скорость поиска) и снять блокировку выбранного процесса после краха программы. Настройки можно сохранить в реестре соответствующей кнопкой; 12 — окно About. Настоятельно рекомендуется взглянуть; здесь также можно написать письмо автору программы (мне); 13 — список найденных адресов; 14 — список готовых адресов.
...и низ Снизу на главном окне имеются следующие кнопки: 15 — переместить выделенные (выделять можно и с помощью клавиш Shift и Ctrl) адреса из найденных (список 13) в готовые (список 14); 16 — редактировать адреса, выделенные (выделять можно и с помощью клавиш Shift и Ctrl) в списке 14. В появившемся окне можно настроить значение, пояснение, адрес и тип выделенных адресов, а также заморозить или разморозить его. ВНИМАНИЕ! При редактировании нескольких адресов изменения коснутся всех выделенных адресов, но неизмененные поля останутся неизмененными. Например: если выделить несколько адресов и нажать кнопку редактирования, после чего вписать только значение, то пояснение, замороженность, адрес внутри процесса и тип останутся, какими были, а значение для всех адресов станет тем, что вы ввели; 17 — позволяет вручную создать готовый адрес по введенным значениям; 18 — служит для удаления выделенных в списке 14 адресов.
И все-таки оно вертится! Теперь рассмотрим введение шестнадцатиричных кодов, которые в изобилии можно найти в рубрике "КОДекс" нашего журнала, на примере игры Anachronox. Запускаемый файл: anox.exe. Деньги — 55D093C (90), 55D093D (90). Для того, чтобы все заработало, необходимо: 1. Запустить программу. 2. С помощью кнопки 4 выбрать нужную программу (в нашем случае — anox.exe). 3. Нажать кнопку 17 и заполнить появившееся окно, поместив в поле "Адрес внутри процесса" первое число (в нашем случае — 55D093C), в поле "Значение" — переведенное в десятичный вид (подойдет Windows-калькулятор и любое другое средство "перевода") число в скобках (в нашем случае — 144). В поле "Пояснение" — комментарий (в нашем случае можно вписать "Деньги"). При необходимости можно поставить флажок "Заморозить". Выбрать тип значения "char (1 byte)". Нажать ОК. 4. Для следующих адресов повторить процедуру. 5. Готово! Можно сохранить готовую таблицу на диск с помощью кнопки 3, после чего, например, отнести ее к друзьям. Загружать надо так: нажимаем кнопку 4, выбираем программу, затем кнопкой 2 загружаем таблицу с диска. Засим прощаюсь с вами. Надеюсь, моя программа существенно облегчит вам процесс "взлома" игр. По поводу багов, пожеланий и рекомендаций пишите мне на HOMO_PROGRAMMATIS@rambler.ru (можно это сделать и из окна About программы). С этого момента утилита займет место рядом с MTC на компакте "Мании".