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

    Поиск значения

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

      Статья демонстрирует как можно найти и изменить значение в памяти процесса с помощью Cheat Engine


      Для начала работы вам понадобится Cheat Engine.
      Если вы прошли встроенный в него туториал то уже знаете как искать значения. В этой статье рассмотрен пример на игре Terraria.

      Заходим в игру, и выясняем сколько здоровья у персонажа:

      a9524c26-992e-44c4-b415-d0ccb7136985-изображение.png

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

      e021f5a6-88d6-4445-b91b-f768ef66b749-изображение.png

      После нажатия появится окошечко выбора процесса, найдите в нём процесс игры, обычно, имеет название как .exe файл игры:

      9808f018-4982-47cd-97cd-57a5f8473b03-изображение.png

      Или перейдите на вкладку Applications сверху и выбере там, по названию окна, после чего нажимайте кнопку Open, если вы планируете проводить отладку процесса, можете вместо этого нажать кнопку Attach debugger to process, это можно сделать и позже.

      db78472c-756c-4ac9-8fac-b89793e7f88d-изображение.png

      Если процесс успешно открылся, вы увидите его название над строкой поиска:

      121374dd-feb8-462e-985b-107a00a0e272-изображение.png

      Теперь можно начинать поиск значения. Нужно найти значение 500, как указано в игре, столько здоровья у персонажа, но изначально неизвестно, какой тип у значения. Если в игре значение показывается как целое, или с плавающей запятой, оно не обязательно является таким, поэтому начните с простого и попробуйте искать в вероятном типе и размере.

      В этой игре значение здоровья персонажа бывает больше чем 255, значит оно точно больше чем байт, двухбайтовые значения разработчики игр используют редко, поэтому начинайте поиск с 4 байт:

      790de82a-2270-4cfd-bdc1-ff2071567cf6-изображение.png

      Впишите значение в строку поиска, расположенной под словом Value и нажмите кнопку First scan:

      b9ace2a2-a77b-4628-8bbd-8c704a071eda-изображение.png

      Если поиск прошёл удачно, слева будет показан список найденных значений такого типа и размера:

      80e10b27-1d0e-4678-86c3-776d25d49497-изображение.png

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

      c1485687-7f82-4980-8697-2b26e70789b5-изображение.png

      Следите что бы значение не изменялось когда вы его ищите, поставьте игру на паузу.
      Теперь введите отображаемое значение вместо первых 500 и нажмите кнопку Next Scan:

      8f613232-f85c-4b4d-8499-6b9ddb436720-изображение.png

      При успешном поиске список значений изменится, в этой игре значение осталось всего одно сразу, но обычно требуется повторить процедуру изменения значения и отсеивания (Next Scan) несколько раз:

      915767cd-5d35-49be-a989-f3f8f376975d-изображение.png

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

      904be9db-b033-4b7c-af0c-644b0b892d17-изображение.png

      f780291d-ccaa-4686-a2df-e001c94cd7d9-изображение.png

      Если всё сделано правильно, значение появится в таблице:

      7debee00-4604-4167-82e7-fceef50ca467-изображение.png

      Теперь попробуйте изменить значение, дважды кликнув на цифру 417 в графе Value, появится окно изменения значения (так же можно изменить значение не вызывая окна, просто выделив его и нажав ентер, набирать цифрами, для применения нажать ентер):

      675c2779-d679-4b76-99e2-f7bae3e0a35b-изображение.png

      Введите желаемое значение и нажмите OK, значение должно измениться:

      91e3b266-6ecf-4f65-855a-f855d1f6c2e0-изображение.png

      Перейдите в игру и посмотрите, изменилось ли значение в ней:

      549ee355-600f-4091-96d5-6071b209ecf9-изображение.png

      Если вы нашли верное значение, вы увидете изменения в игре, если значение не изменилось, стоит начать поиск заново, изменив тип значения на другой. Стоит попробовать типы 4 байта, float, double. Для начала нового поиска нажмите кнопку New Scan.

      Вы можете управлять значением из таблицы, например запретить ему изменяться. Оно будет изменяться, но Cheat Engine будет возвращать его к выбранному вами. Для заморозки значения нажмите на квадратик в графе Active:

      88971073-9318-484d-92c6-d808faf28184-изображение.png

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

      Так же можно нажать справа от крестика и указать тип заморозки, стрелка вверх значит что значению можно увеличиваться, но нельзя уменьшаться, стрелка вниз - наоборот:

      7f3a3b9b-dd50-4905-b5de-9c4556165086-изображение.png
      3ceec365-6b66-4a80-8e20-42eeb4450cf5-изображение.png

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

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