Поиск инструкций работающих с адресом
-
В теме описанао как найти инструкции работающие с адресом, а так же использование nop для отключения инструкций
Для начала вам понадобится значение, для которого вы хотите выполнить поиск инструкций, возьмём значение здоровья персонажа найденное в статье по поиску значения:
Cheat Engine предоставляет два вида обнаружения инструкций, по обращению и по записи. По записи - это те инструкции которые записывают в адрес значение, например уменьшают здоровье персонажа при получении урона. По обращению - это все инструкции, и те что записывают и те что читают, например инструкция считывающая значение что бы нарисовать его на экране в виде сердечек.
Для поиска на запись, вызовите контекстное меню, кликнув на значение в таблице второй кнопкой мыши и выберите этот пункт, или нажмите F6 выделив элемент в таблице:Когда вы нажмёте на этот пункт, если отладчик не подключен то программа спросит вас, подключить ли отладчик к игре, подтверждайте и увидите вот такое окно:
Это окно будет ожидать записи по адресу и показывать что записало в него. Для того что бы там появились новые инструкции, перейдите в игру и измените значение здоровья персонажа, полуичв урон, или вылечившись:
После этого перейдите в Cheat Engine и посмотрите на инструкции в окне:
Появилось две интструкции, описанные в предыдущей статье, первая вычитает из адреса здоровья число находящееся в регистре eax, а вторая увеличивает здоровье на 1.
Значит, первая инструкция это урон при касании врага, а вторая это инструкция отвечающая за постоянную регенерацию персонажа.
Что бы прекратить отслеживание новых инструкций нажмите кнопку Stop, после чего добавьте найденные инструкции в лист сохранённых инструкций, что бы в дальнейшем использовать их, для этого выделите обе инструкции таким же способом как выделяете записи в таблице и нажмите кнопку Add to the codelist:После нажатия инструкции появятся в новом окне:
Закройте окно поиска инструкций нажав клавишу Close, или крестик:
Теперь вы можете сохранить таблицу в любое удобное для себя место с помощью этой кнопки:
Если вы закроете окно с сохранёнными инструкциями Code List, вы можете снова открыть его, нажав на надпись Advanced options в левом нижнем углу главного окна Cheat Engine:
В большинстве игр инструкции находятся на статических адресах и после перезапуска игры сохраняются, таким образом вам не придётся заново искать значения что бы найти их.
Перейдите в окно Code List и выберите инструкцию вычитающую здоровье персонажа:
Вызовите контекстное меню для неё и выберите "Заменить ничего не делающим кодом" (нопами nop):
Перейдите в игру и проверьте, уменьшается ли здоровье персонажа при уроне от тех же источников. Если нет, значит вы всё сделали правильно. В отличии от заморозки, замена нопами полностью отключает действие инструкции, таким образом здоровье персонажа больше не будет уменьшаться при получении урона от врагов.
Что бы восстановить инструкцию, снова нажмите на неё вызвав контекстное меню и выберите "Восстановить оригинальный код":
Таким образом вы можете предотвратить изменение значений и вам не нужно каждый раз заново искать значение. О более продвинутых операциях с инструкциями описано в следующих статьях.