GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Поиск инструкций работающих с адресом

    Запланировано Прикреплена Закрыта Перенесена Базовая информация
    assemblernopнопотладкаинструкции
    1 Сообщения 1 Posters 261 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • PromisingP
      Promising
      отредактировано Promising

      В теме описанао как найти инструкции работающие с адресом, а так же использование nop для отключения инструкций


      Для начала вам понадобится значение, для которого вы хотите выполнить поиск инструкций, возьмём значение здоровья персонажа найденное в статье по поиску значения:

      af897ad5-b132-4158-8611-c14ae32e0b17-изображение.png

      Cheat Engine предоставляет два вида обнаружения инструкций, по обращению и по записи. По записи - это те инструкции которые записывают в адрес значение, например уменьшают здоровье персонажа при получении урона. По обращению - это все инструкции, и те что записывают и те что читают, например инструкция считывающая значение что бы нарисовать его на экране в виде сердечек.
      Для поиска на запись, вызовите контекстное меню, кликнув на значение в таблице второй кнопкой мыши и выберите этот пункт, или нажмите F6 выделив элемент в таблице:

      b1f1c6b9-cfc6-4825-b171-00dc6bb7890b-изображение.png

      Когда вы нажмёте на этот пункт, если отладчик не подключен то программа спросит вас, подключить ли отладчик к игре, подтверждайте и увидите вот такое окно:

      e7ebd4a0-92bb-4036-ac3a-410c9453710a-изображение.png

      Это окно будет ожидать записи по адресу и показывать что записало в него. Для того что бы там появились новые инструкции, перейдите в игру и измените значение здоровья персонажа, полуичв урон, или вылечившись:

      985f4548-30ad-482b-bca5-5fb4d6c58cde-изображение.png

      После этого перейдите в Cheat Engine и посмотрите на инструкции в окне:

      8bf4af4e-22d0-4bf1-957f-ad0c7f58af58-изображение.png

      Появилось две интструкции, описанные в предыдущей статье, первая вычитает из адреса здоровья число находящееся в регистре eax, а вторая увеличивает здоровье на 1.
      Значит, первая инструкция это урон при касании врага, а вторая это инструкция отвечающая за постоянную регенерацию персонажа.
      Что бы прекратить отслеживание новых инструкций нажмите кнопку Stop, после чего добавьте найденные инструкции в лист сохранённых инструкций, что бы в дальнейшем использовать их, для этого выделите обе инструкции таким же способом как выделяете записи в таблице и нажмите кнопку Add to the codelist:

      f1019584-b529-45c5-823c-713887bedbb8-изображение.png

      После нажатия инструкции появятся в новом окне:

      713f2464-8a5f-4c4f-bd50-99b83b6e8575-изображение.png

      Закройте окно поиска инструкций нажав клавишу Close, или крестик:

      a088885b-b35b-4c1c-9bf8-11ef774d11c8-изображение.png

      Теперь вы можете сохранить таблицу в любое удобное для себя место с помощью этой кнопки:

      8b8d2ce9-0a72-4261-b035-7981a6c70b33-изображение.png

      Если вы закроете окно с сохранёнными инструкциями Code List, вы можете снова открыть его, нажав на надпись Advanced options в левом нижнем углу главного окна Cheat Engine:

      36373510-f3ba-4b2d-9a3d-677822d7cc04-изображение.png

      В большинстве игр инструкции находятся на статических адресах и после перезапуска игры сохраняются, таким образом вам не придётся заново искать значения что бы найти их.

      Перейдите в окно Code List и выберите инструкцию вычитающую здоровье персонажа:

      c0b35f60-03dc-452c-be8a-8e526a6cb5b5-изображение.png

      Вызовите контекстное меню для неё и выберите "Заменить ничего не делающим кодом" (нопами nop):

      e4232132-067a-49d1-8038-7e70ce31971e-изображение.png

      Перейдите в игру и проверьте, уменьшается ли здоровье персонажа при уроне от тех же источников. Если нет, значит вы всё сделали правильно. В отличии от заморозки, замена нопами полностью отключает действие инструкции, таким образом здоровье персонажа больше не будет уменьшаться при получении урона от врагов.

      Что бы восстановить инструкцию, снова нажмите на неё вызвав контекстное меню и выберите "Восстановить оригинальный код":

      15cb0564-260a-4908-b86c-9a66bc32133f-изображение.png

      Таким образом вы можете предотвратить изменение значений и вам не нужно каждый раз заново искать значение. О более продвинутых операциях с инструкциями описано в следующих статьях.

      1 ответ Последний ответ Ответить Цитировать 2
      • Первое сообщение
        Последнее сообщение