Как найти указатель в Cheat Engine
Cheat Engine – программа для гейм-хакеров, предназначается для читерства в компьютерных играх. Принцип работы заключается в том, что показатели игры – достижения, жизни, патроны, ресурсы – хранятся в виде цифр по определенным адресам оперативной памяти компьютера. Указатели — память, которая содержит не значение параметра, а адрес нахождения параметра. Сканирование памяти игры в Cheat Engine делает доступным эти адреса найти и изменить цифры на те, которые нужны.
Для чего нужен поиск указателей
Переменные объекта в игре создаются динамически, чтобы не нагружать оперативную память игры и процесса – с текущими параметрами игр оперативной памяти не хватит. Соответственно, ведется учет, где в памяти размещается тот или иной параметр. Базовый элемент — указатель, а внутри – параметры здоровья, ресурсов, опыта, патронов, денег. При каждом новом запуске игры или нового уровня, адреса динамических игровых параметров переезжают в другую область памяти. Для изменения приходится снова и снова находить. Для того, что бы этого не делать применяется поиск указателей.
Найти одноуровневый указатель
Запускаем Cheat Engine. Находим и копируем в нижнее окно адрес переменной, которая отвечает за нужный параметр. Правым кликом по адресной строке вызываем меню, находим строку «Find out what writes to this address». Ставим break на запись и разрешаем запуск отладчика. Идем в игру и тратим часть золота или теряем одну жизнь — чтобы изменить показатель. Возвращаемся к Cheat Engine и видим в окне отладчика новые строки. Выбираем одну типа mov и переходим во вкладку «More information». Правым кликом открываем меню и выбираем «Copy info to clipboard» — скопированное переносим в блокнот, закрываем отладчик.

Далее переходим в главное окно программы и в поисковой строке вводим адрес из указанной области 07AF.., отмечаем галочкой НЕХ и тип значения 4Б, — запускаем поиск. В результатах поиска ищем постоянный адрес – выделяется зеленым. Копируем в нижнее окно и кликаем дважды по строке «Adress».

Копируем адрес сверху, отмечаем галочкой «Pointer» и вставляем в нижнее выпавшее поле. Тип определяем исходный. Далее при помощи вендового калькулятора рассчитываем смещение между первоначальным адресом, копированным в блокнот и найденным зеленым. Результат вставляем во второе поле снизу и жмем «Ок». После этого правым кликом по значению – «Value» выбираем в меню «Show as decimal» — отражать показатели в десятичном формате. Итог сохраняем в типе файла *.СТ. При загрузке этого файла в Cheat Engine с запуском уровня не надо будет снова искать переменные.

Найти многоуровневый указатель
Многоуровневый – это такой, который ссылается не на искомую информацию, а на другой указатель. Таких уровней может найтись сколько угодно. Многоуровневая адресация усложняет процесс поиска цепочки указателей. Обработка занимает время. Сканирование памяти проводится 8-12 раз с перезапуском игры до тех пор, пока не выявится постоянный результат и один показатель не отразит хоть раз одинаковый результат с игровым параметром при перезагрузке.
Новичок в Cheat Engine: как искать значения с запятой
Cheat Engine – это программа, которая позволяет изменять значения в памяти компьютерной игры. Она содержит набор инструментов для поиска и изменения значений в памяти. И хотя Cheat Engine очень мощный инструмент для изменения игр, некоторые пользователи сталкиваются с проблемой поиска значений с запятой.
Поиск значений с запятой
По умолчанию Cheat Engine ищет значения только в целых числах. Однако, в большинстве игр используются числа с плавающей точкой, которые содержат запятую. Если вы ищете значение с запятой, необходимо изменить параметры поиска.
- Откройте Cheat Engine и выберите игру, в которой хотите изменить значения.
- Запустите игру и найдите значение, которое хотите изменить (например, жизни персонажа).
- В Cheat Engine выберите пункт меню "First Scan", чтобы начать поиск значения.
- Введите значение в поле "Value" и выберите тип данных "Float" (значение с запятой).
- Нажмите кнопку "Scan", чтобы начать поиск значения.
Если поиск не дал результатов, повторите шаги 2-5, изменяя значение в игре. Чем точнее будет ваше значение в Cheat Engine, тем меньше будет вариантов для поиска.
Изменение значений с запятой
Когда Cheat Engine найдет нужное значение, вы можете изменить его на любое другое значение. Для того, чтобы изменить значение с запятой, выполните следующие шаги:
- Выберите значение в Cheat Engine, которое вы хотите изменить.
- Введите новое значение в поле "Value" и нажмите кнопку "Next Scan".
- Cheat Engine найдет новое значение в памяти и вы можете изменить его.
Заключение
Теперь, когда вы знаете, как искать и изменять значения с запятой в Cheat Engine, вы можете использовать этот инструмент для открытия новых возможностей в играх. Не забывайте, что использование Cheat Engine может нарушить правила игры и привести к блокировке вашего аккаунта. Будьте осторожны и используйте Cheat Engine только на свой страх и риск.
Cheat engine как найти значение с точкой
Cheat Engine – программа для гейм-хакеров, предназначается для читерства в компьютерных играх. Принцип работы заключается в том, что показатели игры – достижения, жизни, патроны, ресурсы – хранятся в виде цифр по определенным адресам оперативной памяти компьютера. Указатели — память, которая содержит не значение параметра, а адрес нахождения параметра. Сканирование памяти игры в Cheat Engine делает доступным эти адреса найти и изменить цифры на те, которые нужны.
Для чего нужен поиск указателей
Переменные объекта в игре создаются динамически, чтобы не нагружать оперативную память игры и процесса – с текущими параметрами игр оперативной памяти не хватит. Соответственно, ведется учет, где в памяти размещается тот или иной параметр. Базовый элемент — указатель, а внутри – параметры здоровья, ресурсов, опыта, патронов, денег. При каждом новом запуске игры или нового уровня, адреса динамических игровых параметров переезжают в другую область памяти. Для изменения приходится снова и снова находить. Для того, что бы этого не делать применяется поиск указателей.
Найти одноуровневый указатель
Запускаем Cheat Engine. Находим и копируем в нижнее окно адрес переменной, которая отвечает за нужный параметр. Правым кликом по адресной строке вызываем меню, находим строку «Find out what writes to this address». Ставим break на запись и разрешаем запуск отладчика. Идем в игру и тратим часть золота или теряем одну жизнь — чтобы изменить показатель. Возвращаемся к Cheat Engine и видим в окне отладчика новые строки. Выбираем одну типа mov и переходим во вкладку «More information». Правым кликом открываем меню и выбираем «Copy info to clipboard» — скопированное переносим в блокнот, закрываем отладчик.

Далее переходим в главное окно программы и в поисковой строке вводим адрес из указанной области 07AF.., отмечаем галочкой НЕХ и тип значения 4Б, — запускаем поиск. В результатах поиска ищем постоянный адрес – выделяется зеленым. Копируем в нижнее окно и кликаем дважды по строке «Adress».

Копируем адрес сверху, отмечаем галочкой «Pointer» и вставляем в нижнее выпавшее поле. Тип определяем исходный. Далее при помощи вендового калькулятора рассчитываем смещение между первоначальным адресом, копированным в блокнот и найденным зеленым. Результат вставляем во второе поле снизу и жмем «Ок». После этого правым кликом по значению – «Value» выбираем в меню «Show as decimal» — отражать показатели в десятичном формате. Итог сохраняем в типе файла *.СТ. При загрузке этого файла в Cheat Engine с запуском уровня не надо будет снова искать переменные.

Найти многоуровневый указатель
Многоуровневый – это такой, который ссылается не на искомую информацию, а на другой указатель. Таких уровней может найтись сколько угодно. Многоуровневая адресация усложняет процесс поиска цепочки указателей. Обработка занимает время. Сканирование памяти проводится 8-12 раз с перезапуском игры до тех пор, пока не выявится постоянный результат и один показатель не отразит хоть раз одинаковый результат с игровым параметром при перезагрузке.
Cheat Engine — Поиск указателей

— От меня ничто не укроется. А разве могут отказать в чём-либо тому, у кого в руках мешок с золотом? Я достаточно богат, чтобы покупать совесть человеческую, управлять всесильными министрами через их фаворитов, начиная с канцелярских служителей и кончая любовницами. Это ли не власть?
Оноре де Бальзак, «Гобсек», 1830 г.
Ола фламанте, амигос унд мучачос!
Настало время вернуться к инструментарию богоподобного Cheat Engine. Всем, кто по каким-то неведомым причинам в нынешние засушливые времена умудрился пропустить вступительный гайд по CE, настоятельно рекомендую ознакомиться, а то и причаститься. В своем потоке сознания я буду исходить из того предположения, что обычный поиск значений в памяти уже освоен поньтингентом, и закидывать пару гранат просвещения в темный подвал невежества по второму разу не нужно. Все возникающие вопросы, замечания, предложения и пожелания долгой и мучительной смерти можно смело направлять в каменты. Сегодня разговор пойдет чуть более сурьезный, но поверхностность рассмотрения в рамках текущего гайда и продуманность инструментов СЕ позволят свести в минимуму многие сложности в самом процессе поиска и отсева энтих самых указателей. Даже если кто-то нихуя не поймет, он все равно сможет искать указатели и полной грудью вдыхать запах игрового напалма по утрам, просто повторяя нужную последовательность действий.
[ Читать дальше. ]
Эти загадочные указатели
Теоретическая часть для понимания сути процесса
Как доподлинно известно, адрес в оперативной памяти — некий условный шестнадцатеричный идентификатор (а еще проще — обычное число) для взаимодействия программы с реальной физической памятью. По конкретному адресу всегда расположен ровно 1 байт информации. При этом значение любой переменной в программе хранится по какому-то адресу, даже у переменной, для которой выделено больше 1 байта. Например, если по адресу 0CC9B840 хранится переменная в 2 байта со значением в 10000, то в памяти по адресу 0CC9B840 будет храниться 10h, а по адресу 0CC9B841 будет храниться 27h (10000 в hex-кодировке будет выглядеть как 1027 с учетом обратного порядка чередования байтов). Но для программы важен именно начальный адрес всего блока из 2 байтов. Просто программа знает, что нужно использовать последовательно 2 байта информации, начиная с байта по искомому адресу — соответствующий тип переменной использовался разъеботчиком при написании исходного кода.
Каждый кулхацкер сталкивается с тем, что ранее найденный адрес со значением здоровья, патронов или выпусков журнала «Горячие попки ванамингосов» после перезапуска игры, уровня, а то и вовсе ВНЕЗАПНО становится нерабочим — теперь в нем хранится какое-то другое значение или вообще мусор (так называемый garbage — данные, на которые больше нет никаких ссылок). И нужно, превозмогая боль и страх, со штангенциркулем искать новый вожделенный адрес. Происходит сие непотребство из-за так называемого динамического распределения памяти — механизма создания и хранения программами данных в оперативной памяти непосредственно в процессе работы самой программы (называется «в рантайме»). Нужно игре выделить какой-то диапазон адресного пространства под свои данные? Да пожалуйста. Во время своей работы игра жонглирует данными постоянно, выделяя и освобождая память по необходимости. Создался новый враг? Отлично, под его данные выделено N байт. Враг получил передозировку киберсвинца в организьме и больше он нам и нахуй не нужон, враг ваш? Память, ранее выделенную под него, можно освободить и сделать доступной для записи каких-то иных данных, например, для спавна другого врага.

И, собственно, из-за этого блядского цирка с пересозданием объектов и происходит переезд данных на новые адреса в памяти, например, при переходе на новый уровень — игре нужно заново создать уровень и наполнить его объектами. При этом игре лишь нужно знать, с какого адреса будут начинаться данные нового уровня (увязать все это взаимодействие — задача компилятора, программист и в страшном сне заниматься этим не захочет), а относительно этого адреса игра будет пользоваться так называемыми указателями (pointers) на адреса — ссылками на начальные адреса вновь создаваемых объектов согласно принятой иерархии или на адреса, по которым располагаются конкретные значения.
Исходя из сказанного, можно сделать следующие выводы:
1. Память однородна. Ячейка памяти может хранить как исполняемый код, так и какие-то данные.
2. Если данные хранятся непосредственно по какому-то адресу в памяти, доступ к ним осуществляется напрямую при обращении к этому адресу.
3. По какому-то адресу в памяти можно разместить не конечные данные, а указатель — ссылку на какой-то другой адрес, где хранятся нужные данные.
4. Если указатель ссылается на другой указатель, то такой указатель будет называться многоуровневым. Времена одноуровневых указателей давно в прошлом, поэтому 99% нужных нам указателей будут многоуровневыми.
Тут надо сделать маленькое лирическое отступление о причинах возникновения такого порядка вещей. Всему виной повсеместное использование ООП — объектно-ориентированного программирования. Такой подход позволяет оперировать объектами игры как с некими абстрактными структурами данных, и хранить однотипные данные не в обособленных переменных, а в заранее определенном формате. Например, при создании нового объекта типа пони можно последовательно хранить имя пони, тип пони (обычная поня, пегас, единорог, аликорн и т.д.), цвет пони в кодировке RGB, тип кьютимарка (отличительный знак на ляжке — пояснение для жалких унтерменшей, не смотревших прогрессивные мультики про поней). Таким образом, когда будет создан новый объект типа пони, информация о нем будет заранее определенным образом упорядочена при описании структуры или класса объекта.
На абстрактном языке погромирования это может выглядеть следующим образом:
struct Pony

Возможность создавать такие однотипные структуры данных позволяет экономить сотни времени, наделяя объекты общими данными и методами работы с ними.
Теперь представим, что мы как-то адекватно хотим описать в коде игры возможность пегасов летать. Создадим некую структуру данных и назовем ее PonyType. Пусть другие типы, кроме пегасов, нас сейчас не волнуют, и мы просто хотим в один байт уместить информацию о возможности или невозможности пони летать.
Для этого объявим в этой структуре логическую переменную canFly типа bool, которая может принимать значения true либо false, занимая при этом ровно 1 байт. Также добавим еще 1 байт под запас энергии для полета.
А теперь начинается интеграционная дружбомагия. В исходную структуру типа Pony поместим указатель на структуру типа PonyType:
struct Pony
Таким образом, при создании нового объекта типа Pony информация о возможности летать и запасе энергии будет передаваться через указатель на структуру PonyType. Чсх, в памяти это будет занимать те же самые 2 байта, как если бы использовали ранее применявшийся целочисленный тип short.
Для программиста, который занимается разработкой структуры типа Pony, теперь не имеет значения, что там внедряет другой программист, занимающийся разработкой структуры PonyType. При правильной организации кода игры любые изменения в структуре PonyType никак не отразятся на работоспособности структуры Pony. Собственно, ради этого все и затевалось. Конечно, на таком простом примере сложно ощутить все преимущества ООП, но мейнстримом он стал не за красивые глаза.
И теперь уже совсем нетрудно построить некоторую цепочку указателей, начиная от создания мира.
Остальные данные структур не отображены для экономии пространства:
// структура лучезарного эквестрийского мира с множеством локаций
struct Equestria
// структура уютненького Понивилля с множеством поняшек
struct City
// структура няшечки Рейнбоу и любой другой пони
struct Pony
// структура типа пони
struct PonyType

Таким образом, например, при перезапуске игры нужно вновь создать объект типа Equestria, записав его начало по новому адресу, а дальше последовательно будет выделена память под 36 объектов типа City, для каждого и которых будет последовательно выделено место под 100 объектов типа Pony, в каждом из которых, в свою очередь, будет выделено место под 1 объект типа PonyType.
Адресация во всех этой махине зависит полностью от одного адреса — адреса начала объекта типа Equestria. И если нас интересует конечный адрес количества энергии на полет конкретной пони, то он каждый раз будет новый. Но с точки зрения игры все остается по прежнему:
→ Она знает начальный адрес, по которому прописался исполняемый код игры.
→ От него она отсчитывает известное количество байт, занимаемое исполняемым кодом и не относящимися к генерации уровня данными, и там начинает записывать данные, уже относящиеся к генерации уровня — то есть создает объект типа Equestria.
→ Далее по системе указателей она доходит до конечного пункта — количества энергии у конкретной пони — и использует его.
На слове последовательно я акцентирую внимание по той причине, что по нашей схеме будет использовано сквозное заполнение адресного пространства оперативной памяти: сначала будут созданы какие-то исходные данные объекта типа Equestria, затем создан первый объект типа City и все объекты типа Pony, затем второй объект типа City и все объекты типа Pony и так далее.
Собственно, зная адрес начала объекта типа Equestria и последовательность смещений до энергии конкретной пони, мы всегда может восстановить искомый адрес энергии. Задача поиска рабочего адреса энергии возлагается на рабочий указатель.
В рассматриваемом случае буквально получается, что объект типа Equestria создается по адресу, по которому была записана в оперативную память сама игра (ее исполняемый файл Game.exe) плюс некоторое смещение 10EF0C, необходимое игре для записи своего исполняемого кода и каких-то иных данных.
Относительно адреса объекта типа Equestria на значение C0 смещено расположение конкретного объекта типа City, относительно которого на значение FAD8 смещено расположение конкретного объекта типа Pony, относительно которого на значение 02FF смещено расположение конкретного объекта типа PonyType, относительно которого на значение 01 смещено расположение искомого значения энергии.
Обладая этой информацией, мы почти всегда однозначно можем определить истинный адрес искомого значения энергии.

И все это благолепие справедливо, конечно же, в том случае, если нужный нам город и нужная нам поня создаются первыми (вторыми, десятыми, главное — стабильность положения относительно начала) во всем массиве объектов (что часто бывает, поскольку именно относящиеся к игроку данные загружаются первыми). Также нужно уточнить, что адрес объекта типа Equestria может и не быть статическим (то есть неизменным от загрузки к загрузке — в нашем случае это Game.exe + 10EF0C ), если не предопределен конечный объем данных перед его загрузкой. В этом случае адрес начала ключевого объекта должен быть найден способами, не входящими в данный гайд (через поиск так называемых сигнатур — уникальных последовательностей байтов). О сигнатурах мы тоже когда-то обязательно поговорим.
Резюмируя затянувшуюся вводную часть, подчеркну, что никакой мистики тут нет. С точки зрения кулхацкерства указатель — всего лишь ссылка на начальный адрес объекта внутри адресного пространства другого объекта либо непосредственно на адрес, по которому расположены требуемые данные.
Для успешного кулхацкерства достаточно знать, как вся система примерно работает в целом, а также владеть автоматизированными средствами поиска и ручными методами контроля правильности указателей.
К этому и приступим.

Автоматический поиск указателей
Практическая часть для формирования навыков
Если речь идет не об эрпогэ, где достаточно один раз взломать значение каких-нибудь скиллпоинтов, а затем тупо вкачать героя на полный фарш, поиск указателей является обязательной процедурой. Играя в шутер или РТС, хочется всегда иметь под рукой возможность поковырять ресурсы, здоровье или боезапас, не утруждая себя подчас утомительной процедурой поиска нового адреса. Да и в пошаговой эрпогэ каждый бой искать количество очков действия, если их всего два, а то и одно — нахуй так жыдь?
Но на помощь кулхацкерам приходят средства автоматизации СЕ, благодаря которым поиск рабочих указателей является ничуть не более сложной процедурой, чем стандартный поиск адреса.

Процесс поиска предлагаю рассмотреть на примере первой Мафии. Если при взгляде на главное меню у тебя заиграла в голове та самая музыка, а сердце защемило тоской по былому — я тебя понимаю!

Ну что ж, искать мы будем указатель на адрес, по которому хранится количество патронов в магазине оружия, находящегося в руках у игрока. Это весьма полезный указатель, позволяющий нам забыть про необходимость перезарядки абсолютно любого вооружения. Здесь и далее я считаю, что поиск соответствующего адреса не вызывает проблем. Если таковые имеются, можно либо перечитать вступительный гайд по СЕ, либо задать вопрос тут в каментах.
Значение патронов в текущем оружии хранится в обычной целочисленной переменной 4 байта, никаких трудностей при поиске и отсеве возникнуть не должно даже у новичков в использовании СЕ.
![]()
Итак, значение найдено. Действующий адрес 16В4744С.

Жмакаем правой кнопкой по адресу и выбираем пункт Pointer scan for this address.

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

Далее СЕ попросит указать расположение файла результатов сканирования указателей в формате PTR.

После появится окно прогресса сканирования.

И завершится все феерическим количеством найденных указателей (результаты уже сохранены в файл 111.PTR). Предлагаю внимательно изучить результаты.
Сверху слева в выпадающем списке указан формат представления данных по конечному адресу, на который ссылается указатель. В нашем случае это 4 байта целочисленное. Конечный адрес указан в крайнем правом столбце Points to.
Сверху по центру указано общее количество найденных указателей: 26769689. 26 мульёнов — шутка ли?
В крайнем левом столбце Base Address указывается базовый статический адрес, относительно которого выстраивается многоуровневый указатель.
В столбцах Offset 0 – Offset 6 указывается смещение на каждом уровне многоуровневого указателя.
Если перенести даблкликом найденный указатель в рабочее поле СЕ и даблкликом же в поле Address открыть окно редактирования Change address, можно будет детально изучить всю структуру добавленного указателя. В рабочем поле указатель помечается префиксом P->.
В окне Change address снизу по центру указаны по порядку все уровни указателя, начиная со статического базового адреса. Справа приводится результат по каждому смещению. Результат по предыдущему вычислению становится исходным адресом для следующего уровня.


Если говорить совсем в открытую, уже сейчас, несмотря на дикое количество результатов, с ними можно работать. Но мы из вредности проведем еще один цикл поиска и отсева. Главное правило при отсеве указателей заключается в максимальном смещении всего адресного пространства, выделяемого под игру. Чаще всего, правда, достаточно игру просто перезапустить, но можно и поизъёбствываться, запустив перед загрузкой игры пару «тяжелых» приложений.
Но мы ограничимся перезапуском самой игры и загрузкой другого уровня. Окно СЕ с результатами поиска указателей по старому адресу остается открытым.

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

Теперь достаточно скопировать новый найденный адрес (даблклик по полю Address откроет окно редактирования), затем в окне поиска указателей нужно выбрать пункт меню Pointer scanner > Rescan memory — Removes pointers not pointing to the right address.

В появившемся окне нужно проконтролировать корректность введенного адреса и отметить чекбоксик Only filter out invalid pointers.
После установки чекбоксика изменение адреса и типа отсева станет недоступно.

Снова СЕ предложит нам сохранить результаты отсева указателей в файле PTR. Я рекомендую каждый этап сохранять в отдельной файле, ибо в случае каких-то проблем можно будет без труда загрузить предыдущие результаты. Из окна результатов сканирования Pointer scan это можно сделать через пункт меню File > Open.

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

И четвертый цикл отсева произведем не по результатам поиска нового адреса, а по результатам сравнения в текущей сессии значений по адресам, на которые ссылаются найденные указатели. В этом случае нужно изменить тип отсева на Value to find, указать тип значения 4 байта целочисленное и снять чекбоксик Only filter out invalid pointers.


Как видно из количества отсеянных указателей на третьем и четвертом этапах, эти этапы можно было смело пропустить.
И вот здесь кулхацкер задаст себе резонный вопрос: как же работать с тремя миллионами (Карл!) найденных указателей? На помощь пытливому уму придет логика и здравый смысл:
1. Нужно проанализировать базовые адреса в колонке Base Address. Всякие мутные ddl-ки и прочие модули нам вряд ли подойдут. Нужен исполняемый файл или, на крайний случай, какая-то базовая библиотека. В случае с Мафией ориентироваться на Game.exe более чем разумно.
2. Если после очередного отсева есть указатели, ссылающиеся на адрес с некорректным значением (при условии правильно указанного типа значения — целочисленного или с плавающей точкой!), то такие указатели нам явно не подходят.
3. Чем меньше уровней в многоуровневом указателе, тем надежнее будет его использование. Иногда, конечно, и двухуровневые указатели могут отваливаться, но желательно стремиться к меньшему числу уровней.
И именно на этом этапе анализа достаточно кликнуть по заголовку столбца Offset 6, чтобы указатели были рассортированы по количеству уровней.
Теперь нужно легко и непринужденно даблкликом накидать скопом в рабочее поле СЕ указатели второго-пятого уровня различными базовыми адресами и первыми смещениями. В нашем примере очевидно, что Game.exe + 00246D4C является, скорее всего, тем самым правильным базовым адресом, но вот иерархия уровней указателей может не обязательно говорить в пользу меньшего количества уровней. Строго говоря, для точного ответа необходим ручной анализ структур данных, но это уже более комплексный вопрос. Поэтому надо накидать в рабочее поле штук по пять указателей каждого уровня и получить в итоге целую батарею предварительных результатов. В рабочем поле они все выглядят одинаково, но при редактировании можно будет увидеть всю структуру уровней каждого указателя.




Торжественный момент! Настало время проверить работоспособность найденных указателей.
Как всегда перезапускаем игру и загружаем другой уровень.

Выбираем в открытом окне СЕ процесс игры и — вуаля. Все найденные указатели являются рабочими. Удалять их из экономии пространства я пока не советую, ибо в разных условиях какие-то могут отвалиться и перестать работать, но в целом всё получилось. Можно объединить все указатели в группу в рабочем поле СЕ, выделив их и выбрав в контекстном меню по правой кнопке мыши Add to new group, озаглавив группу и выбрав уверенное No в вопросе «Do you want "address" version?». В настройках группы Group config в контекстном меню можно выбрать Hide children when deactivated и сворачивать всю группу пробелом или кликом по чекбоксу заморозки значения в левой части строки. Табличку можно сохранять и жить припеваючи.

Анализ дампа в окрестностях найденного адреса показал, что за 4 байта до нашего адреса хранится тип оружия, а через 4 байта после — общее количество патронов к данному оружию.

Что же нам теперь, повторять эту возню с поиском указателей еще и на эти адреса? Разумеется, нет.
Достаточно скопировать рабочем поле какой-нибудь корректный указатель с помощью Ctrl + C или пункта контекстного меню Copy, после чего вставить его здесь же по Ctrl + V (Paste).
Откроется небольшое окно, позволяющее указать требуемое смещение.

Альтернативный вариант заключается в копировании всего указателя без изменений и последующего редактирования копии в общем порядке.
Вот и все. Получается уютненькая табличка, которой можно пользоваться в том числе и тогда, когда оружия на миссию вообще не выдают, а покувыркаться с Сарочкой очень хочется — достаточно выставить тип оружия на 10 (томми-ган) и досыпать патронов, не забывая выкинуть его и поднять для корректной обработки появления оружия в руках у персонажа.

Инструкция по использованию программы Cheat Engine
Все игры используют рабочую память компьютера для сохранения таких данных, как количество золота, очки жизни, атрибуты персонажа, время. Используя Cheat Engine можно найти эти данные, и заменить их на другие нужные пользователю значения.
Программа Cheat Engine — это сканер памяти, шестнадцатеричный редактор и отладчик. При использовании Cheat Engine чаще всего используется простейшее сканирование памяти для поиска переменных, а затем их заменяют другими. Таким образом, можно легко увеличить средства или изменить практически любые атрибуты персонажей.
Использовать программу Чит Энджин можно, только когда все вычислительные операции выполняются на компьютере пользователя. Если игра взаимодействует с внешним сервером, то обмануть ее не получится, и даже если это удастся, есть риск быть забаненным. Поэтому рекомендуется использовать приложение только для однопользовательских и оффлайн-игр. Такие сайты, как Steam, которые отслеживают безопасность могут бессрочно заблокировать учетную запись из-за использования Cheat Engine.
- лицензия: свободная;
- система: Win XP, Vista, 7, 8, 10;
- регистрация: нет;
- ограничения: нет;
- официальный сайт: cheatengine.org;
- цена: бесплатно.
Изменяем значения в игре
Взлом с помощью Cheat Engine шаг за шагом:
- Запускаем выбранную игру.
- Запускаем Cheat Engine.
- Подключаем процесс игры к Cheat Engine. (цифра 1 на рисунке).






Как пользоваться популярной программой Cheat Engine
Рассмотрим, как работает программа на примере игры Heroes 3. Допустим, что изначальное количество золота составляет 20000 – почему бы не сделать себе миллион золотых. Сверните игру и запустите Cheat Engine, затем выполните манипуляции, описанные ниже.
Нажимаем кнопку с изображением компьютера.

Откроется окно, в котором представлен список запущенных процессов – в нашем случае нужен h3wog.exe. Название «экзешника» можно посмотреть в папке с игрой.

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

Найдите нужную строку из доступных, используя метод сортировки. Потратьте золото в игре – пусть текущее количество денег в казне изменится. Эту комбинацию цифр введите в Cheat Engine в поле значение – выполните эту манипуляцию и нажмите кнопку Отсев (ни в коем случае не Новый поиск, иначе придется начинать заново!).

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

По возвращении в игру и проверьте: если никаких изменений не произошло, то в этом случае выполните произвольное внутриигровое действие, например, переместите героя на одну клетку или запустите экран города.
Вы не собираетесь ничего менять и хотите запустить Speed Hack для получения преимущества в игре? В таком случае выполните манипуляции, описанные выше, до того момента, когда задается значение параметра в соответствующем поле. Искать HEX-код не нужно, выберите exe-файл с игрой и справа от поля Значение отметьте галочкой поле Спидхак. После этого в игре произойдет ускорение, которое затронет только игрового персонажа или и окружение.

Cheat Engine используется для взлома одиночных игр. Кроме того, это работающий способ получения преимуществ в онлайн-играх, однако в последнем случае пользователь рискует быть забаненым системой античитов на сервере. Изменять параметры онлайн-игр с помощью Cheat Engine рекомендуется на отдельном аккаунте – в противном случае появляется риск лишиться учетной записи.
Как пользоваться таблицами
Таблица в Cheat Engine – это, по сути, файл с сохраненными параметрами для изменения. Для использования следует:
- Запустить игру.
- Запустить Чит Энджин.
- Выбрать кнопку «открыть».
- Указать путь к сохраненной таблице.
- После загрузки искать больше ничего не нужно, достаточно ввести свои значения в нужные ячейки. Обычно авторы подписывают каждый параметр, поэтому сложностей возникнуть не должно.
Использование SpeedHack
Некоторые игры наполнены атмосферой, и это действительно приятно — просто поглощать прекрасно созданный мир, которым окружен пользователь в течение нескольких часов подряд. Во многих других есть наполнитель или просто ненужные вещи, которые крадут время, потраченное на другие дела. Для таких случаев у Cheat Engine есть функция ускоренной перемотки вперед.

Несколько примеров использования:
Rocksmith 2014. Эта игра имеет очень длинную последовательность запуска, которая не скрывает загрузку или что-то в этом роде, она просто длинная ради зрелищности. После запуска устанавливаете ее на 50-кратную скорость, и последовательность заканчивается, экономя примерно 25 секунд при каждом запуске.
Undertale. Ограничена 30fps. При этом большая часть игры просто идет в излишне медленном темпе. Лучше играть на скорости 2x, тогда визуальные эффекты составляют 60 кадров в секунду, что ускоряет многие монотонные действия (медленная ходьба), при битвах и диалогах можно вернуть скорость.
Можно установить конкретные клавиши для определенных скоростей, чтобы обеспечить возможность регулировки.
По умолчанию используют такие горячие клавиши:
- М: 1,0;
- N: 2.0;
- Alt + M: 50,0;
- Alt + N: 200,0.
Достаточно найти название исполняемого файла и вставить его название с расширением exe в настройки (как показано на скриншоте).

Советы
- Cheat Engine предназначен для изменения незначительных элементов игры — если изменить значение более крупного элемента, игра может поломаться.
Функции Speedhack и Антирандом в Cheat Engine
Спидхак представляет собой взлом отвечающих за скорость параметров – с его помощью можно заставить персонажа или управляемое вами транспортное средство быстрее передвигаться, стрелять, перезаряжаться и т.д. Процедура от рассмотренного ранее взлома числовых значений особо не отличается, все даже проще.
- Запускаем игру и начинаем игровую сессию.
- Открываем Cheat Engine и выбираем необходимый процесс, подтверждая выбор нажатием на клавишу “Open” в том же окне.
- Если никаких ошибок в процессе вмешательства в процесс не возникло, в главном окне программы станет доступен пункт “Включить Спидхак”. Поставьте напротив него галочку.
- После предыдущего действия в окне появится ползунок со шкалой, по умолчанию настроенный на показатель 1.0 (ваша текущая скорость). Манипулируйте им по своему усмотрению до достижения оптимальных для вас параметров.
- Примените настройку нажатием на одноименную кнопку.
К сожалению, далеко не каждая игра позволяет отдельно отрегулировать скорость управляемого вами персонажа. Часто бывает так, что вместе с повышением скорости на ползунке весь игровой мир начинает двигаться в ускоренном темпе.
Что касается функции Антирандом, она работает по аналогичному принципу, но имеет несколько другое назначение. Ее смысл заключается в замене случайных величин в определенном диапазоне на статические числа. К примеру, случайные величины могут использоваться при имитации разброса пуль в какой-нибудь стрелялке. Использовали Антирандом? Можете забыть о необходимости контролировать отдачу – все пули будут лететь точно в цель.
Использование Cheat Engine в онлайновых играх
Многие игроки, узнав о возможностях программы Cheat Engine, сразу же начинают интересоваться – а можно ли использовать эту программу для получения преимуществ перед другими игроками в каком-нибудь онлайновом проекте? К сожалению, ответ на этот вопрос в большей степени отрицательный, чем положительный. Различные мелкие проекты, в которые основная масса людей даже и не играла, мелкие браузерки и казуалки вполне могут быть уязвимыми перед CE и аналогичными программами. Но когда речь идет о крупных проектах вроде Overwatch, Dota 2, Black Desert и аналогичных, шансов на взлом не остается никаких.
Во-первых, потому что каждая из этих игр надежно защищена регулярно обновляемым античитом. Во-вторых, часть данных и переменных хранится на серверах проекта, а не на компьютерах находящихся онлайн пользователей. Даже если вам удастся запустить Cheat Engine, внедриться в процесс и поменять данные (например, прибавить себе 1000 очков здоровья и увеличить скорость в два раза), когда вы зайдете в игру, ситуация вообще не поменяется. В лучшем случае, вы заметите эффект в виде дисконнекта и сообщения об ошибке.
Заморозка значений
Иногда простого изменения значения недостаточно, тогда может понадобиться функция заморозки. После переноса параметра в нижнюю часть, слева от него есть квадратик, при нажатии на него появится крестик или галочка, теперь оно заморожено.
Способы обновления браузера на мобильных устройствах
В этом случае цифры не будут изменяться независимо от действий игрока. Например, нужно взломать игру на деньги. Установив золото на 10000 можно его тратить сколько угодно, это цифра будет неизменна. Это же касается маны, жизней и других параметров.
Как использовать в онлайн-играх
Cheat Engine может изменять значения, только если игра запускается на стороне игрока. Если игровые расчеты происходят на сервере, то взломать её не получится.
Некоторые онлайн игр, которые не используют многопользовательский режим запускаются во флэш контейнере. Взлом браузерной оффлайн игры аналогичен обычной, но в качестве источника данных надо выбрать флэш процесс:
Ищем необходимое изначальное значение и изменяем его, к примеру, построив здание:

Большинство простых показателей будут представлены числом в 4 байта:

Если конкретное число не найдено, ищем все возможные комбинации.
Затем изменяем параметр и отсеиваем, указав, что оно уменьшилось или увеличилось.
Сheat Engine на Андроид
Ранее программа была доступна только пользователям компьютеров. Но теперь она доступна и для телефонов Android. Благодаря этому пользователи могут получить множество преимуществ, которые открываются в большинстве игр:
- Сначала загрузите Cheat Engine на Android устройство.
- Откройте файл Apk из каталога загрузки файловым менеджером и нажмите кнопку «Установить».
- Перед этим включите установку из неизвестных источников на телефоне. Для этого зайдите в настройки, затем в безопасность и включите опцию.


Стандартные способы и программы для сканирования с принтера МФУ на компьютер
Преимущества программы Cheat Engine
Использование программы не требует специальных знаний. Пользователям не нужно иметь представление о HEX-кодах и других специфических аспектах игр. Для решения проблемы воспользуйтесь нашей инструкцией, применимой в любой игре – алгоритм поиска нужных полей остается неизменным.
Программа поддерживает русский язык. Требования Cheat Engine к аппаратной конфигурации ПК лояльные – программа работает даже на слабых компьютерах. В продуманной навигации с легкостью разберется даже новичок. Изменения дополнительных параметров не требуется, делайте это только в том случае, если вы – продвинутый пользователь. Подобная необходимость возникает при сложном поиске, когда требуется изменить параметры конкретного противника и не затрагивать остальное игровое окружение.
Программа Cheat Engine легка в освоении и не вызывает сложностей у новичков. Геймеры пользуются этой программой каждый день и получают в любимых играх максимум удовольствия. Загрузите Cheat Engine на нашем портале и забудьте о возможных сложностях в видеоиграх. Программа работает в Windows XP и новее. Cheat Engine – это универсальный инструмент.
Как искать значения в cheat engine minecraft
Тем кому лень разбираться в сути вопроса и откуда он взялся, то вопрос в самом последнем абзаце
Здравствуйте, сижу тренируюсь в работе с Cheat engine 6.6
Игра (оффлайн) — Rise of Legends (скриншот ниже)
В игре есть 2 типа ресурсов: кристаллы и энергия. У них есть прирост в минуту и ограничение (зеленая стрелочка вверх в левом верхнем углу).
Сначала хотел было взломать само значение ресурсов, но решил что это скучно, так что решил взломать именно прирост в минуту (а позже и ограничение) и возможно потом создать таблицу читов.
Для начала выбрал прирост кристаллов.
Часто в играх значение хранится именно в 4 байтах, но уже был опыт когда значение хранилось во float, тогда как только лишь визуальное отображение 4 байта. К примеру хп в Warcraft 3 хранится в 2 адресах по 4 байта и в 2х float. к примеру 1000/1500. 4 б. и float = 1000, а другие 4 б. и float = 1500.
Так что решил найти все значения включая float и double.
Искал нудно через значение изменилось/не изменилось, дабы точно найти адреса избегая разных типов шифрования.
Урок 1. Как искать указатели в Cheat Engine. VimeWorld Cheat Engine
В итоге нашел 12 адресов (скриншот ниже), 3 — 4 байта, 3 — float и 6 — double.
Изменяя прирост в игре изменяются значения всех 12ти адресов.
Вот собственно мы и подошли к вопросу: как найти нужный адрес из этих 12ти и как его изменить?
Так как думаю если я в адресе поставлю к примеру «1000» то прирост вряд ли будет в игре равен «1000».

Голосование за лучший ответ
Прикольно. Здравствуйте
Сделай отсев по неизмененным значениям, потом попробуй увеличить прирост вручную, сделай отсев по измененным, должно стать меньше адресов. если не вышло- меняй каждое значение и смотри в игре- не изменился ли прирост
Это либо 1 либо 9 тк все остальное только визуальное, если адреса почти одинаковые то их лесом, остальное можно изменять и все будет норм
Как найти указатель в Cheat Engine
Cheat Engine – программа для гейм-хакеров, предназначается для читерства в компьютерных играх. Принцип работы заключается в том, что показатели игры – достижения, жизни, патроны, ресурсы – хранятся в виде цифр по определенным адресам оперативной памяти компьютера. Указатели — память, которая содержит не значение параметра, а адрес нахождения параметра. Сканирование памяти игры в Cheat Engine делает доступным эти адреса найти и изменить цифры на те, которые нужны.
Для чего нужен поиск указателей
Переменные объекта в игре создаются динамически, чтобы не нагружать оперативную память игры и процесса – с текущими параметрами игр оперативной памяти не хватит. Соответственно, ведется учет, где в памяти размещается тот или иной параметр. Базовый элемент — указатель, а внутри – параметры здоровья, ресурсов, опыта, патронов, денег.
ПОИСК СИГНАТУР ДЛЯ ЧИТА | Cheat Engine
При каждом новом запуске игры или нового уровня, адреса динамических игровых параметров переезжают в другую область памяти. Для изменения приходится снова и снова находить. Для того, что бы этого не делать применяется поиск указателей.
Найти одноуровневый указатель
Запускаем Cheat Engine. Находим и копируем в нижнее окно адрес переменной, которая отвечает за нужный параметр. Правым кликом по адресной строке вызываем меню, находим строку «Find out what writes to this address». Ставим break на запись и разрешаем запуск отладчика. Идем в игру и тратим часть золота или теряем одну жизнь — чтобы изменить показатель.
Возвращаемся к Cheat Engine и видим в окне отладчика новые строки. Выбираем одну типа mov и переходим во вкладку «More information». Правым кликом открываем меню и выбираем «Copy info to clipboard» — скопированное переносим в блокнот, закрываем отладчик.

Далее переходим в главное окно программы и в поисковой строке вводим адрес из указанной области 07AF. отмечаем галочкой НЕХ и тип значения 4Б, — запускаем поиск. В результатах поиска ищем постоянный адрес – выделяется зеленым. Копируем в нижнее окно и кликаем дважды по строке «Adress».

Копируем адрес сверху, отмечаем галочкой «Pointer» и вставляем в нижнее выпавшее поле. Тип определяем исходный. Далее при помощи вендового калькулятора рассчитываем смещение между первоначальным адресом, копированным в блокнот и найденным зеленым. Результат вставляем во второе поле снизу и жмем «Ок».
После этого правым кликом по значению – «Value» выбираем в меню «Show as decimal» — отражать показатели в десятичном формате. Итог сохраняем в типе файла *.СТ. При загрузке этого файла в Cheat Engine с запуском уровня не надо будет снова искать переменные.

Найти многоуровневый указатель
Многоуровневый – это такой, который ссылается не на искомую информацию, а на другой указатель. Таких уровней может найтись сколько угодно. Многоуровневая адресация усложняет процесс поиска цепочки указателей. Обработка занимает время. Сканирование памяти проводится 8-12 раз с перезапуском игры до тех пор, пока не выявится постоянный результат и один показатель не отразит хоть раз одинаковый результат с игровым параметром при перезагрузке.
Как искать значения в cheat engine minecraft
Я вам сегодня расскажу как пользоваться Cheat Engine.
1.Включаем Cheat Engine.
2.жмем на компьютер 
3.Выбераем нужный процесс и жмем «Open» 
4.Теперь очередь найти адреса. Если игра сетевая то настраиваем как я показал ставим галки где 
а если нет то не чего не изменяем!
5.Пишите в Value :
и нажимаем на кнопку First Scan
как нажали заходим в игру и делаем что-бы это число поменялось
пишем в Value : какое число получилось и нажимаем на Next Scan 
6.1.Выделаем нужный адрес 2.И нажимаем на красную стрелочку 
7.2 щелчком мышки нажимаем на число в адресе и появляется табличка и в ней пишите какое число хотите получить и нажимаем на OK 
Во многих играх здоровье показывается линиями, и мы не можем видеть какое точное значение в данный момент, имеет здоровье для этого в программе Cheat Engine есть хорошая функция под название «Value between» эта функция может найти неизвестное значение в заданном диапазоне.
Я буду искать здоровье в игре BRINK, здоровье обозначается вот так:

0.Запускаем нужный процесс и входим в игру ставим на паузу и сворачиваем.
1.Запуск программу Cheat Engine выбираем нужный процесс, в котором мы будем искать.
2.Выбираем функцию «Value between» обычно диапазон здоровья примерно «от 0 до 500».

3.Жмем,
и начинается поиск неизвестных значений в выбранном диапазоне.
4.Программа находит много значений
нам их надо уменьшить, чтобы было «1-5» значений для этого в программе есть еще пару функций ( «уменьшить на…» это «
» и «увеличить на…» это «
»).
5.Разворачиваем игру, ищем способ немного уменьшить здоровье… мы уменьшили здоровье и снова ставим игру на паузу, чтобы в игре здоровье не прибавилось за время отсеивания .
6.В программе выбираем
и жмем,
получается во тот так


7.Повторяем 5,6 пункт до тех пор, пока не уменьшится значений от 1 до 5 но у меня получилось 2 значения

8.Выносим все значение, нажав на них 2 раза л.к.м.
9.Нажимаем на цифру значения и изменяем на любое число и ставим крестик, чтобы значение не менялось.

10.Играем и радуемся бессмертию…
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 195
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 71
Статус: Offline
Quote ( Shtopr666 )
Ваня8,спасибо)
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Psycho-Saint
Сообщений: 280
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 87
Статус: Offline
Quote ( Folk )
Хм надо будет попробовать юзать его
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Psycho-Saint
Сообщений: 280
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 87
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 169
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 87
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 105
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 105
Статус: Offline
Продажа аккаунтов Аризона, Радмир, BLACK RUSSIA, CS:GO, WoT и др. в нашем магазине.
Сообщений: 87
Статус: Offline
Quote ( DEMON )
[AoC]Free_Man, с нее не пишутся, а берутся исходные адреса. Так например, если писать свой какой либо тренер для игры, тебе потребуется программа Trainer Creator (неважно какой версии, у нас есть последняя кстати), далее нужно прописать в создаваемый exe тренера тот адрес, который, например, отвечает за деньги, здоровье и прочее.
Вписываются не найденные 4 битные и прочие адреса в общей таблице артмани, а структурные коды этих адресов. Они прописываются в указателе того адреса, которые ты обнаружишь при отсеивании (в большинстве случаев находится только 1 точное значение). Щелкнуть правой клавой мыши, выбрать «больше», «искать», «искать указатель на этот адрес», прописать этот указатель в креатор.
Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 8027879c9f4f5aa2 • Your IP: Click to reveal 86.107.21.84 • Performance & security by Cloudflare