Поиск значения
-
Статья демонстрирует как можно найти и изменить значение в памяти процесса с помощью Cheat Engine
Для начала работы вам понадобится Cheat Engine.
Если вы прошли встроенный в него туториал то уже знаете как искать значения. В этой статье рассмотрен пример на игре Terraria.Заходим в игру, и выясняем сколько здоровья у персонажа:
500 здоровья. Что бы найти это значение в Cheat Engine, сначала нужно подключиться к процессу игры. Для этого нажимаем переливающуюся разными цветами кнопку со значком монитора и лупы:
После нажатия появится окошечко выбора процесса, найдите в нём процесс игры, обычно, имеет название как .exe файл игры:
Или перейдите на вкладку Applications сверху и выбере там, по названию окна, после чего нажимайте кнопку Open, если вы планируете проводить отладку процесса, можете вместо этого нажать кнопку Attach debugger to process, это можно сделать и позже.
Если процесс успешно открылся, вы увидите его название над строкой поиска:
Теперь можно начинать поиск значения. Нужно найти значение 500, как указано в игре, столько здоровья у персонажа, но изначально неизвестно, какой тип у значения. Если в игре значение показывается как целое, или с плавающей запятой, оно не обязательно является таким, поэтому начните с простого и попробуйте искать в вероятном типе и размере.
В этой игре значение здоровья персонажа бывает больше чем 255, значит оно точно больше чем байт, двухбайтовые значения разработчики игр используют редко, поэтому начинайте поиск с 4 байт:
Впишите значение в строку поиска, расположенной под словом Value и нажмите кнопку First scan:
Если поиск прошёл удачно, слева будет показан список найденных значений такого типа и размера:
Что бы найти среди них конкретное значение, нужно уменьшить количество совпадений, для этого измените значение в игре, например позволив монстру стукнуть вашего персонажа:
Следите что бы значение не изменялось когда вы его ищите, поставьте игру на паузу.
Теперь введите отображаемое значение вместо первых 500 и нажмите кнопку Next Scan:При успешном поиске список значений изменится, в этой игре значение осталось всего одно сразу, но обычно требуется повторить процедуру изменения значения и отсеивания (Next Scan) несколько раз:
Для того что бы проверить, нужное ли это значение, добавьте его в таблицу, сделать это можно выделив значение нажав на него и нажав на кнопку со стрелочкой, или через контекстное меню которое появляется нажатием другой кнопки мыши на значение, (в нём же можно и изменить значение не добавляя в таблицу):
Если всё сделано правильно, значение появится в таблице:
Теперь попробуйте изменить значение, дважды кликнув на цифру 417 в графе Value, появится окно изменения значения (так же можно изменить значение не вызывая окна, просто выделив его и нажав ентер, набирать цифрами, для применения нажать ентер):
Введите желаемое значение и нажмите OK, значение должно измениться:
Перейдите в игру и посмотрите, изменилось ли значение в ней:
Если вы нашли верное значение, вы увидете изменения в игре, если значение не изменилось, стоит начать поиск заново, изменив тип значения на другой. Стоит попробовать типы 4 байта, float, double. Для начала нового поиска нажмите кнопку New Scan.
Вы можете управлять значением из таблицы, например запретить ему изменяться. Оно будет изменяться, но Cheat Engine будет возвращать его к выбранному вами. Для заморозки значения нажмите на квадратик в графе Active:
Теперь перейдите в игру и посмотрите на результат, значение должно возвращаться к выбранному после любых изменений, например нанесения урона персонажу.
Так же можно нажать справа от крестика и указать тип заморозки, стрелка вверх значит что значению можно увеличиваться, но нельзя уменьшаться, стрелка вниз - наоборот:
Вы можете изменять несколько значений выделив их и выбрав пункт в контекстном меню, или два раза кликнув на него.