Поиск команд, которые обращаются по адресу. На примере игры "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. При этом количество денег будет увеличиваться, но не будет тратиться! Важно, для этой игры должен быть установлен тип отладчика "Обработка исключений", стандартный в этой игре не работает. |