Поиск команд, которые обращаются по адресу. На примере игры "King's Bounty: The Legend"


Находим адрес денег в игре "King's Bounty: The Legend". Обычным поиском точного значения, тип "целое 4 байта". Адрес меняется при перезапуске игры, указателей нет. Нажимаем на адресе денег, правой клавишей мыши и в меню выбираем "Найти команды, которые обращаются по адресу". Ставим доступ "Запись" и жмём кнопку "Старт". Далее в игре покупаем войнов в магазине, переключаемся на ArtMoney и получаем:



Мы нашли адрес одной команды, которая пишет деньги в память. При желании, в таблице справа можно посмотреть значения регистров и флагов на момент исполнения команды. Нажимаем на команде правой клавишей мыши и в меню выбираем "Добавить в таблицу".



Далее закрываем форму поиска и в таблице появиться адрес типа "Команда ассемблера". В поле значение этой команды вводим NOP (команда, которая ничего не делает), то есть мы заменяем команду MOV на NOP.



Переключаемся в игру и покупаем войнов. Количество денег не меняется. Но, оно не меняется, и когда мы находим деньги на карте. Тогда ставим горячие клавиши Ctrl-D установить "NOP" и Ctrl-E установить "mov [edi+08],ebx".



Теперь в игре, когда нам надо что то купить, нажимаем Ctrl-D, покупаем, нажимаем Ctrl-E. При этом количество денег будет увеличиваться, но не будет тратиться! Важно, для этой игры должен быть установлен тип отладчика "Обработка исключений", стандартный в этой игре не работает.
Назад Содержание Вперед

Copyright (C) 1996-2017, System SoftLab.
Дата последнего обновления
27 июля 2017 года