Почему чит энджин не находит значения
Перейти к содержимому

Почему чит энджин не находит значения

  • автор:

Problem with value type: All — Not finding anything [Solved] #408

image

the picture shows it all, I was playing monopoly when looking for the value of my money I couldn’t find it on the latest version of cheat engine but yet I could on an older version..
I tried other processes and found the same problem only when I select (All), one more thing to mention is that I can verify that these types are working:
Byte and 2 Byte and 4 Byte and Float

что делать если cheat engine не находит значения

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

зависит от игры. начнем с подмены значений:
Artmoney ищет в процессе заданное значение (допустим количество денег), присваиваем свое значение.
cheat engine — грубо говоря, профессиональный артмани, более точно ищет значения, уже встроены инъекции.
Такими уязвимостями страдают оффлайн игры, или такие отсталые онлайн игры как point blank.

Далее о инъекциях — это подключение к исполнительному файлу свою библиотеку с модулями, такими как WH — wallhack (прозрачные стены), aim — автоприцеливание, и прочее. Уязвимость к инъекциям есть даже у battlefield4.

ну и конечно же подмена пакета. Wpe pro. Данная фича раньше сильно использовалась для хаков в WOW, потом порезали. Сейчас используется только в ручном режиме в очень пикантных случаях.

Максимальную защищенность имеют онлайн игры с полным вычислением физики игры на серверной части, не сочтите за рекламу — но это движок BIG WORLD к примеру, и всеми ненавистные танки.

Удачи афтору и читателям, и не будьте пидарасами-хуесосами, не читерите.

Содержание статьи

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

WARNING

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

Warden (переводится с английского как смотритель, надзиратель) — именно так решили назвать защитную систему разработчики популярнейших в своих жанрах игр из Blizzard. Система, являясь фактически частью Battle.net, используется в таких проектах, как World of Warcraft, StarCraft II и Diablo 3. Только лишь по официальным данным за все время были забанены десятки тысяч аккаунтов Battle.net, и немалая часть при этом — заслуга Warden.

Безмолвный смотритель

Для начала, пожалуй, стоит выяснить, что собой представляет Warden. Система состоит из двух частей: серверной и клиентской, и, само собой, мы будем иметь дело только с клиентской частью. Как уже было сказано ранее, Warden не является неотъемлемой частью игрового кода. Код клиентской части подгружается динамически с Battle.net в виде образов, отдаленно напоминающих по своей структуре Portable Executable, которые затем отображаются по случайным адресам в адресном пространстве игрового процесса. Стоит также отметить, что большая часть кода клиентской части Warden обфусцирована и может изменяться от одной игровой сессии к другой.

Warden представляет собой пассивный механизм защиты, и все, чем занимается клиентская часть Warden, — это сбор информации, которая впоследствии отправляется серверной части. В целом примерный алгоритм работы клиентской части Warden выглядит следующим образом:

Процедура повторяется с некоторой периодичностью несколько раз в минуту. Если серверная часть обнаруживает несоответствие хешей эталонным значениям, считается, что используются запрещенные модификации кода. Каких-либо незамедлительных действий при этом не предпринимается — аккаунт просто помечается как нарушающий правила, а о том, что ты «попался» можно будет узнать лишь через некоторое время, когда учетная запись уже будет заблокирована. Целиком аккаунт Battle.net (который может содержать множество прикрепленных лицензий) при этом не блокируется — только учетная запись игры.

что делать если cheat engine не находит значенияЗаблокированная игровая учетная запись

Хакер #187. Обходим Blizzard Warden

Против системы

Нейтрализовать Warden, просто отключив его либо заблокировав его работу, не удастся: система устроена таким образом, что серверная часть в любом случае должна получать от клиентской ответные пакеты, которые, в свою очередь, должны содержать информацию о сканировании. Следовательно, выход только один — не попадаться. Добиться этого можно как минимум тремя способами:

Первый вариант будет работать до поры до времени и по большому счету обходом как таковым не является. Второй вариант (перехват EndScene() ) действительно неплохо работает, функция вызывается после завершения построения каждого выводимого на экран кадра и перехватывается, например вполне легальными программами видеозахвата, что не дает Warden возможности однозначно трактовать изменения в коде функции как запрещенные модификации. Тем не менее вариант больше годится для ботов и успешно ими эксплуатируется на протяжении уже нескольких лет. Третий вариант идеально подходит для статичных модификаций (как, например, включение отрисовки всей карты в Star Craft — maphack), кроме того, его реализация сама по себе интереснее и технологичнее. Именно последний вариант подробно и рассмотрим далее.

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

что делать если cheat engine не находит значенияСердце сканера Warden

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

что делать если cheat engine не находит значенияПоиск загрузчика

Поиск данных по бинарному паттерну

Полные исходники можно посмотреть в прилагаемом проекте.

Патчер

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

Список структур, содержащий информацию по всем совершенным в процессе изменениям, может принадлежать объекту с глобальной областью видимости. Модифицирование кода теперь может производиться примерно следующим образом:

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

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

Невидящее око Warden’а

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

Чтобы в поле зрения Warden не попало ни одного измененного байта, при каждом вызове сканирования необходимо искать пересечение множеств сканируемых адресов с адресами пропатченных данных. Так как патчи, скорее всего, не будут идти один за другим (это не имеет смысла) — будет максимум одно пересечение для одного скана и данные можно будет брать из структуры, связанной с каким-то одним конкретным патчем. Все возможные варианты пересечений сводятся к одному двойному условию: либо адрес начала множества сканируемых байт входит во множество адресов патча, либо наоборот. Таким образом, мы должны перебирать все патчи, проверяя заданное условие:

Получив сопряженную с текущим сканированием структуру с информацией о патче, подменить данные не составит труда:

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

что делать если cheat engine не находит значенияЛог активности Warden

SOURCE

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

Proof of concept

Само смещение соответствует условному переходу после сравнения глобальной переменной, содержащей идентификатор уровня доступа для текущего контекста, с нолем (ноль соответствует самым высоким правам). Заменив условный переход безусловным, получаем возможность использовать любые функции WoW API, создавая сложные и «умные» скрипты, автоматизирующие многие игровые действия (самый примитивный пример использования: забиндить всю ротацию спеллов на одну кнопку, с проверкой кулдаунов и так далее, что сделать изначально невозможно). Упрощенный код установки патча выглядит примерно так:

После установки патча становятся доступны прямо из макросов «защищенные» функции WoW API, а в логе активности Warden мы можем наблюдать предотвращенные попытки просканировать пропатченную область. Убедиться в этом ты можешь, скомпилировав и опробовав прилагаемые к статье исходники.

что делать если cheat engine не находит значения

Как насчет остальных проектов Blizzard?

В статье был рассмотрен вариант перехвата кода загрузчика для WoW, у других проектов этот код находится в обфусцированной библиотеке battle.net.dll, по которой в принципе невозможно создать не зависящий от версии библиотеки паттерн для поиска кода загрузчика. В этом случае, как один из вариантов, можно перехватывать все вызовы VirtualProtect(), совершенные из battle.net.dll, обрабатывая их примерно следующим образом:

Полная свобода действий

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

Ввод консольных команд, изначально предоставленных в распоряжение игроков самими разработчиками, является далеко не единственным способом “обмануть игру” и получить дополнительные преимущества. Многие люди заходят еще дальше – находят способы открывать зашифрованные файлы с настройками и переменными, меняют там значения, после чего пользуются всеми прелестями миллионного запаса здоровья, прокачанным уровнем и бесконечными деньгами. Причем на этом список возможностей явно не ограничивается.

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

Как пользоваться Cheat Engine

что делать если cheat engine не находит значения

Рассмотрим принцип действия данной программы и перечень доступных функций в формате пошагового руководства со скриншотами. Принцип действия для всех игр у нее абсолютно одинаковый.

что делать если cheat engine не находит значения

что делать если cheat engine не находит значения

Упростить процедуру поиска нужного параметра можно при помощи функции “Отсев”. Возвращаемся к примеру с 300 монетами и, завершив первое сканирование с поиском параметров, где фигурирует цифра 300, снова заходим в игру и меняем количество монет на другое – например, выкидываем часть на землю или покупаем что-то у торговца. Затем запоминаем новую цифру, вводим ее в поле со значением программы Cheat Engine и жмем тот самый “Отсев”. Программа просканирует ресурсы игры и выявит параметр из первого поиска, который поменял свое значение. Так вы точно найдете нужную числовую величину.

Функции Speedhack и Антирандом в Cheat Engine

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

Что касается функции Антирандом, она работает по аналогичному принципу, но имеет несколько другое назначение. Ее смысл заключается в замене случайных величин в определенном диапазоне на статические числа. К примеру, случайные величины могут использоваться при имитации разброса пуль в какой-нибудь стрелялке. Использовали Антирандом? Можете забыть о необходимости контролировать отдачу – все пули будут лететь точно в цель.

Использование Cheat Engine в онлайновых играх

Многие игроки, узнав о возможностях программы Cheat Engine, сразу же начинают интересоваться – а можно ли использовать эту программу для получения преимуществ перед другими игроками в каком-нибудь онлайновом проекте? К сожалению, ответ на этот вопрос в большей степени отрицательный, чем положительный. Различные мелкие проекты, в которые основная масса людей даже и не играла, мелкие браузерки и казуалки вполне могут быть уязвимыми перед CE и аналогичными программами. Но когда речь идет о крупных проектах вроде Overwatch, Dota 2, Black Desert и аналогичных, шансов на взлом не остается никаких.

Во-первых, потому что каждая из этих игр надежно защищена регулярно обновляемым античитом. Во-вторых, часть данных и переменных хранится на серверах проекта, а не на компьютерах находящихся онлайн пользователей. Даже если вам удастся запустить Cheat Engine, внедриться в процесс и поменять данные (например, прибавить себе 1000 очков здоровья и увеличить скорость в два раза), когда вы зайдете в игру, ситуация вообще не поменяется. В лучшем случае, вы заметите эффект в виде дисконнекта и сообщения об ошибке.

что делать если cheat engine не находит значения

Заключение

Выше были рассмотрены лишь самые основные функции программы Cheat Engine, которыми может воспользоваться большинство геймеров для получения преимущества в одиночных и некоторых многопользовательских играх. Но на практике это куда более функциональный и разносторонний инструмент, имеющий внушительное количество дополнительных опций по созданию трейнеров, манипулированию Direct3D режимами. Если вас что-то из перечисленного заинтересовало, вы всегда можете абсолютно бесплатно скачать данный продукт с официального сайта.

Инструкция по использованию программы Cheat Engine

Cheat Engine– полезнейшая программа в арсенале любого геймера. Изменить внутренние параметры игры и «создать» себе нужное количество игрового золота, боеприпасов или любых других ресурсов в несколько кликов мышки, вот предназначение этой программы. К сожалению, у многих игроков при первом использовании возникают вопросы, как ею правильно пользоваться, поэтому мы написали для вас подробною инструкцию, как пользоваться Cheat Engine.

Инструкция будет показана на примере старой доброй игры Age of Empires III, где мы «наколдуем» себе пару миллионов игровых монет. Итак, для начала скачайте последнюю версию cheat engine и запустите сначала ее, а затем игру.

Делай раз

Запустим какую-нибудь миссию в игре и увидим, что золота у нас не так что бы уж очень много – 200.

Запомним это значение и откроем через alt+tab окно с нашей программой. Здесь вам нужно будет выбрать игровой процесс (1), в строку поиска ввести искомое значение (2) и нажать кнопку “Поиск” (3).

что делать если cheat engine не находит значения

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

Делай два

Поэтому возвращаемся к игре и отправим поселенцев заработать немного денег, что бы изменить их количество.

Переключаемся опять к cheat engine, вводим в строку поиска новое значение (4) и запускаем повторное сканирование кнопкой “Отсев” (5), что бы программа искала изменение значений только среди результатов первого сканирования.

что делать если cheat engine не находит значения

Как видите, результатов осталось всего два. Выберете их мышкой, щелкните правой клавишей и нажмите “Добавить выбранные адреса в таблицу”.

Делай три

Теперь в таблице выберете эти два значения, нажмите на них правой кнопкой мыши и проследуйте по пути “Изменить ” – “Значение”.

что делать если cheat engine не находит значения

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

Отменить ответ

можно ли взломать рр3 одиночную

Это подробная инструкция как искать значения, с этим любой школьник справится, а как на счет поиска указателей? отвечу на все вопросы связанные с онлайн играми, их нельзя взломать, так как все данные хранятся на сервере, а Cheat Engine ищет значения у вас на компьютере…

Возьмём crysis 2.
Для взлома энергии выбирается “Float”
Для взлома нанокатализаторов выбирается “4 Bit”
для чего остальные параметры?

Всё прекрасно работает в оффлайн играх! Единственно что у меня всё на англоязыке. Но разобраться не трудно.

короче как я понял со спартой война империй не прокатит

Спасибо очень помог. У меня версия 6.7 (bit-32)

На Асфальт 8 работал год назад, а теперь пробую сейчас на GTR2 не работает…

очень круто что можна взамать ворлд оф танкс

Делал всё по указанной инструкции, но новое значение так и не устанавливается.
Может после вписки нового значения нужно ещё что то нажать.

Господи, малолетние знатоки делятся опытом. Делай раз… Ума хватило только на поиск точных известных значений, которые не задаются иными адресами и не меняют адресов. Между тем как полнейший тутор на английском приложен к программе, но только на английском.А на таком уровне пользования это все равно что программой Photoshop контрастность подкручивать, а 3DMax’ом объемный текст набирать.

Докладываю, последнее время полно игр, в которых найденное вами значение можно будет изменить – и вы даже увидите изменения на экране, как вы накидали, к примеру очков навыков вместо 5 95 – да только вот незадача – это лишь “ярлык” для вашего ознакомления, а записываются значения в него командой из другого адреса. И изменив этот ярлык вы по факту в игре ничего не измените (так и будет у вас пять очков навыков) и при следующем игровом изменении это число/показатель вернется к “родному” значению.

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

Тема: Как писать читы: №1 Ищем нужное значение с помощью Cheat Engine

Социальные закладки
Опции темы
Отображение

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

После моего урока у Андрея ( ShadowAGT ), мне было сказано выложить его тут, в чем я собственно согласен с ним.

Это как для закрепления материала, ну и для тех кому будет это интересно. Ну начнем с того что саму программу, вы можете скачать с оф.сайта, это тут: [Вы должны быть зарегистрированным и не заблокированным пользователем для того чтобы просматривать ссылки зарегистрироваться можно по этой ссылке]

На данный момент урок будет предоставлен на программе Cheat Engine v.5.6.1
Для простоты понимания, и исключения Ваших непоняток, почему CheatEngine иногда не отсеивает значения правильно т.к.
Вы можете их неправильно искать по типу чисел в памяти, в неправильной последовательности выполнять поиск, значения могут быть так же кодированными, может находить не одно а несколько значений (дубляжи) и напав на след неверного дублера, можно уйти неправильной дорогой, была выбрана самая элементарная игра где ошибиться просто невозможно,
и объяснить на ней все это достаточно просто и быстро. По аналогии с этой игрой, делается в ЛЮБОЙ другой игре, будь то Сталкер или какая-нибудь еще стрелялка, стратегия, симулятор и т.д.

Возьмем для примера стандартную Windows игру «КОСЫНКА» игра была взята из Windows XP
Постараюсь объяснить чуть ли не на пальцах.

Начнем:
Запускаем Косынку, потом Cheat Engine

Далее в Cheat Engine выбираем процесс игры, нажимаем на значок компьютера в ней.

Выбираем процесс самой игры, пометил синим.

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

После быстро переходим в программу ставим Value на 10, и жмем кнопку First Scan (вот здесь уже неплохо было бы использовать опцию Pause the game while scanning поскольку в Косынке, набранные очки уменьшаются с течением времени).

Потом ждем пока очки уменьшаться сами, или делаем любой ход чтоб их увеличить.
Прописываем там где у нас было десять, ваше текущие очки и жмем Next Scan: И там же получаем результат
( он может выйти не с первого раза, если что еще раз набиваем очков и отсеиваем )
Далее кликнем два раза по самому значению слева, и оно у нас перебегает вниз:

Там где у нас стоит в значении, наши очки. Ставим там любую цифру, допустим 800.
И смотрим, чтоб в игре это значение тоже поменялось, если в игре нужное нам число изменилось, стало тоже 800, значит вы все правильно сделали:

Как найти указатель в 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» — скопированное переносим в блокнот, закрываем отладчик.

что делать если cheat engine не находит значения

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

что делать если cheat engine не находит значения

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

что делать если cheat engine не находит значения

Найти многоуровневый указатель

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

Cheat Engine — Поиск указателей

cheatengine_logo2

— От меня ничто не укроется. А разве могут отказать в чём-либо тому, у кого в руках мешок с золотом? Я достаточно богат, чтобы покупать совесть человеческую, управлять всесильными министрами через их фаворитов, начиная с канцелярских служителей и кончая любовницами. Это ли не власть?
Оноре де Бальзак, «Гобсек», 1830 г.

Ола фламанте, амигос унд мучачос!
Настало время вернуться к инструментарию богоподобного Cheat Engine. Всем, кто по каким-то неведомым причинам в нынешние засушливые времена умудрился пропустить вступительный гайд по CE, настоятельно рекомендую ознакомиться, а то и причаститься. В своем потоке сознания я буду исходить из того предположения, что обычный поиск значений в памяти уже освоен поньтингентом, и закидывать пару гранат просвещения в темный подвал невежества по второму разу не нужно. Все возникающие вопросы, замечания, предложения и пожелания долгой и мучительной смерти можно смело направлять в каменты. Сегодня разговор пойдет чуть более сурьезный, но поверхностность рассмотрения в рамках текущего гайда и продуманность инструментов СЕ позволят свести в минимуму многие сложности в самом процессе поиска и отсева энтих самых указателей. Даже если кто-то нихуя не поймет, он все равно сможет искать указатели и полной грудью вдыхать запах игрового напалма по утрам, просто повторяя нужную последовательность действий.
[ Читать дальше. ]
Эти загадочные указатели
Теоретическая часть для понимания сути процесса

Как доподлинно известно, адрес в оперативной памяти — некий условный шестнадцатеричный идентификатор (а еще проще — обычное число) для взаимодействия программы с реальной физической памятью. По конкретному адресу всегда расположен ровно 1 байт информации. При этом значение любой переменной в программе хранится по какому-то адресу, даже у переменной, для которой выделено больше 1 байта. Например, если по адресу 0CC9B840 хранится переменная в 2 байта со значением в 10000, то в памяти по адресу 0CC9B840 будет храниться 10h, а по адресу 0CC9B841 будет храниться 27h (10000 в hex-кодировке будет выглядеть как 1027 с учетом обратного порядка чередования байтов). Но для программы важен именно начальный адрес всего блока из 2 байтов. Просто программа знает, что нужно использовать последовательно 2 байта информации, начиная с байта по искомому адресу — соответствующий тип переменной использовался разъеботчиком при написании исходного кода.

Каждый кулхацкер сталкивается с тем, что ранее найденный адрес со значением здоровья, патронов или выпусков журнала «Горячие попки ванамингосов» после перезапуска игры, уровня, а то и вовсе ВНЕЗАПНО становится нерабочим — теперь в нем хранится какое-то другое значение или вообще мусор (так называемый garbage — данные, на которые больше нет никаких ссылок). И нужно, превозмогая боль и страх, со штангенциркулем искать новый вожделенный адрес. Происходит сие непотребство из-за так называемого динамического распределения памяти — механизма создания и хранения программами данных в оперативной памяти непосредственно в процессе работы самой программы (называется «в рантайме»). Нужно игре выделить какой-то диапазон адресного пространства под свои данные? Да пожалуйста. Во время своей работы игра жонглирует данными постоянно, выделяя и освобождая память по необходимости. Создался новый враг? Отлично, под его данные выделено N байт. Враг получил передозировку киберсвинца в организьме и больше он нам и нахуй не нужон, враг ваш? Память, ранее выделенную под него, можно освободить и сделать доступной для записи каких-то иных данных, например, для спавна другого врага.

06

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

Тут надо сделать маленькое лирическое отступление о причинах возникновения такого порядка вещей. Всему виной повсеместное использование ООП — объектно-ориентированного программирования. Такой подход позволяет оперировать объектами игры как с некими абстрактными структурами данных, и хранить однотипные данные не в обособленных переменных, а в заранее определенном формате. Например, при создании нового объекта типа пони можно последовательно хранить имя пони, тип пони (обычная поня, пегас, единорог, аликорн и т.д.), цвет пони в кодировке RGB, тип кьютимарка (отличительный знак на ляжке — пояснение для жалких унтерменшей, не смотревших прогрессивные мультики про поней). Таким образом, когда будет создан новый объект типа пони, информация о нем будет заранее определенным образом упорядочена при описании структуры или класса объекта.

На абстрактном языке погромирования это может выглядеть следующим образом:
struct Pony
<
char name[10]; // 10 байт под имя
short type; // 2 байта под тип пони
byte color[3]; // 3 байта под цвет
byte cutiemark; // 1 байт под тип кьютимарка
>

02

Возможность создавать такие однотипные структуры данных позволяет экономить сотни времени, наделяя объекты общими данными и методами работы с ними.

Теперь представим, что мы как-то адекватно хотим описать в коде игры возможность пегасов летать. Создадим некую структуру данных и назовем ее PonyType. Пусть другие типы, кроме пегасов, нас сейчас не волнуют, и мы просто хотим в один байт уместить информацию о возможности или невозможности пони летать.
Для этого объявим в этой структуре логическую переменную canFly типа bool, которая может принимать значения true либо false, занимая при этом ровно 1 байт. Также добавим еще 1 байт под запас энергии для полета.

struct PonyType
<
bool canFly;
byte energy;
>

А теперь начинается интеграционная дружбомагия. В исходную структуру типа Pony поместим указатель на структуру типа PonyType:
struct Pony
<
char name[10];
PonyType* type; // тот самый указатель на тип в виде звездочки *
byte color[3];
byte cutiemark;
>

Таким образом, при создании нового объекта типа Pony информация о возможности летать и запасе энергии будет передаваться через указатель на структуру PonyType. Чсх, в памяти это будет занимать те же самые 2 байта, как если бы использовали ранее применявшийся целочисленный тип short.
02
Для программиста, который занимается разработкой структуры типа Pony, теперь не имеет значения, что там внедряет другой программист, занимающийся разработкой структуры PonyType. При правильной организации кода игры любые изменения в структуре PonyType никак не отразятся на работоспособности структуры Pony. Собственно, ради этого все и затевалось. Конечно, на таком простом примере сложно ощутить все преимущества ООП, но мейнстримом он стал не за красивые глаза.
И теперь уже совсем нетрудно построить некоторую цепочку указателей, начиная от создания мира.
Остальные данные структур не отображены для экономии пространства:

// структура лучезарного эквестрийского мира с множеством локаций
struct Equestria
<
.. // какие-то другие данные
City* city[36]; // для выделения памяти под 36 объектов типа City
>

// структура уютненького Понивилля с множеством поняшек
struct City
<
..
Pony* pony[100]; // для выделения памяти под 100 объектов типа Pony
>

// структура няшечки Рейнбоу и любой другой пони
struct Pony
<
..
PonyType* type; // для выделения памяти под 1 объект типа PonyType
>

// структура типа пони
struct PonyType
<
..
byte energy; // для выделения 1 байта памяти под значение энергии
>

03

Таким образом, например, при перезапуске игры нужно вновь создать объект типа 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 смещено расположение искомого значения энергии.
Обладая этой информацией, мы почти всегда однозначно можем определить истинный адрес искомого значения энергии.
04
05

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

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

Автоматический поиск указателей
Практическая часть для формирования навыков

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

mafia_main

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

Game 2021-03-01 23-16-51-049

Ну что ж, искать мы будем указатель на адрес, по которому хранится количество патронов в магазине оружия, находящегося в руках у игрока. Это весьма полезный указатель, позволяющий нам забыть про необходимость перезарядки абсолютно любого вооружения. Здесь и далее я считаю, что поиск соответствующего адреса не вызывает проблем. Если таковые имеются, можно либо перечитать вступительный гайд по СЕ, либо задать вопрос тут в каментах.
Значение патронов в текущем оружии хранится в обычной целочисленной переменной 4 байта, никаких трудностей при поиске и отсеве возникнуть не должно даже у новичков в использовании СЕ.

m01_0

Итак, значение найдено. Действующий адрес 16В4744С.

m02_0

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

m03

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

m04

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

m05

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

m06

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

Если перенести даблкликом найденный указатель в рабочее поле СЕ и даблкликом же в поле Address открыть окно редактирования Change address, можно будет детально изучить всю структуру добавленного указателя. В рабочем поле указатель помечается префиксом P->.
В окне Change address снизу по центру указаны по порядку все уровни указателя, начиная со статического базового адреса. Справа приводится результат по каждому смещению. Результат по предыдущему вычислению становится исходным адресом для следующего уровня.
m07_0
m08_0

Game 2021-03-01 23-26-48-480

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

m09_0

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

m10_0

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

m11

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

m12

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

m13_0

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

С этими результатами уже точно можно работать, но для подстраховки мы проведеи еще и третий цикл.
Game 2021-03-01 23-35-28-575
m15_0

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

m18_0

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

Теперь нужно легко и непринужденно даблкликом накидать скопом в рабочее поле СЕ указатели второго-пятого уровня различными базовыми адресами и первыми смещениями. В нашем примере очевидно, что Game.exe + 00246D4C является, скорее всего, тем самым правильным базовым адресом, но вот иерархия уровней указателей может не обязательно говорить в пользу меньшего количества уровней. Строго говоря, для точного ответа необходим ручной анализ структур данных, но это уже более комплексный вопрос. Поэтому надо накидать в рабочее поле штук по пять указателей каждого уровня и получить в итоге целую батарею предварительных результатов. В рабочем поле они все выглядят одинаково, но при редактировании можно будет увидеть всю структуру уровней каждого указателя.
m19m20
m21m22

Game 2021-03-01 23-44-04-589

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

m23

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

m24

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

m25

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

m26

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

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

Инструкция по использованию программы Cheat Engine

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

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

Использовать программу Чит Энджин можно, только когда все вычислительные операции выполняются на компьютере пользователя. Если игра взаимодействует с внешним сервером, то обмануть ее не получится, и даже если это удастся, есть риск быть забаненным. Поэтому рекомендуется использовать приложение только для однопользовательских и оффлайн-игр. Такие сайты, как Steam, которые отслеживают безопасность могут бессрочно заблокировать учетную запись из-за использования Cheat Engine.

  • лицензия: свободная;
  • система: Win XP, Vista, 7, 8, 10;
  • регистрация: нет;
  • ограничения: нет;
  • официальный сайт: cheatengine.org;
  • цена: бесплатно.

Изменяем значения в игре

Взлом с помощью Cheat Engine шаг за шагом:

  1. Запускаем выбранную игру.
  2. Запускаем Cheat Engine.
  3. Подключаем процесс игры к 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 – это, по сути, файл с сохраненными параметрами для изменения. Для использования следует:

  1. Запустить игру.
  2. Запустить Чит Энджин.
  3. Выбрать кнопку «открыть».
  4. Указать путь к сохраненной таблице.
  5. После загрузки искать больше ничего не нужно, достаточно ввести свои значения в нужные ячейки. Обычно авторы подписывают каждый параметр, поэтому сложностей возникнуть не должно.

Использование 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

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

  1. Запускаем игру и начинаем игровую сессию.
  2. Открываем Cheat Engine и выбираем необходимый процесс, подтверждая выбор нажатием на клавишу “Open” в том же окне.
  3. Если никаких ошибок в процессе вмешательства в процесс не возникло, в главном окне программы станет доступен пункт “Включить Спидхак”. Поставьте напротив него галочку.
  4. После предыдущего действия в окне появится ползунок со шкалой, по умолчанию настроенный на показатель 1.0 (ваша текущая скорость). Манипулируйте им по своему усмотрению до достижения оптимальных для вас параметров.
  5. Примените настройку нажатием на одноименную кнопку.

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

Что касается функции Антирандом, она работает по аналогичному принципу, но имеет несколько другое назначение. Ее смысл заключается в замене случайных величин в определенном диапазоне на статические числа. К примеру, случайные величины могут использоваться при имитации разброса пуль в какой-нибудь стрелялке. Использовали Антирандом? Можете забыть о необходимости контролировать отдачу – все пули будут лететь точно в цель.

Использование Cheat Engine в онлайновых играх

Многие игроки, узнав о возможностях программы Cheat Engine, сразу же начинают интересоваться – а можно ли использовать эту программу для получения преимуществ перед другими игроками в каком-нибудь онлайновом проекте? К сожалению, ответ на этот вопрос в большей степени отрицательный, чем положительный. Различные мелкие проекты, в которые основная масса людей даже и не играла, мелкие браузерки и казуалки вполне могут быть уязвимыми перед CE и аналогичными программами. Но когда речь идет о крупных проектах вроде Overwatch, Dota 2, Black Desert и аналогичных, шансов на взлом не остается никаких.

Во-первых, потому что каждая из этих игр надежно защищена регулярно обновляемым античитом. Во-вторых, часть данных и переменных хранится на серверах проекта, а не на компьютерах находящихся онлайн пользователей. Даже если вам удастся запустить Cheat Engine, внедриться в процесс и поменять данные (например, прибавить себе 1000 очков здоровья и увеличить скорость в два раза), когда вы зайдете в игру, ситуация вообще не поменяется. В лучшем случае, вы заметите эффект в виде дисконнекта и сообщения об ошибке.

Заморозка значений

Иногда простого изменения значения недостаточно, тогда может понадобиться функция заморозки. После переноса параметра в нижнюю часть, слева от него есть квадратик, при нажатии на него появится крестик или галочка, теперь оно заморожено.

Способы обновления браузера на мобильных устройствах

В этом случае цифры не будут изменяться независимо от действий игрока. Например, нужно взломать игру на деньги. Установив золото на 10000 можно его тратить сколько угодно, это цифра будет неизменна. Это же касается маны, жизней и других параметров.

Как использовать в онлайн-играх

Cheat Engine может изменять значения, только если игра запускается на стороне игрока. Если игровые расчеты происходят на сервере, то взломать её не получится.

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

Ищем необходимое изначальное значение и изменяем его, к примеру, построив здание:

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

Если конкретное число не найдено, ищем все возможные комбинации.

Затем изменяем параметр и отсеиваем, указав, что оно уменьшилось или увеличилось.

Сheat Engine на Андроид

Ранее программа была доступна только пользователям компьютеров. Но теперь она доступна и для телефонов Android. Благодаря этому пользователи могут получить множество преимуществ, которые открываются в большинстве игр:

  1. Сначала загрузите Cheat Engine на Android устройство.
  2. Откройте файл Apk из каталога загрузки файловым менеджером и нажмите кнопку «Установить».
  3. Перед этим включите установку из неизвестных источников на телефоне. Для этого зайдите в настройки, затем в безопасность и включите опцию.

Установка из неизвестных источников

Стандартные способы и программы для сканирования с принтера МФУ на компьютер

Преимущества программы Cheat Engine

Использование программы не требует специальных знаний. Пользователям не нужно иметь представление о HEX-кодах и других специфических аспектах игр. Для решения проблемы воспользуйтесь нашей инструкцией, применимой в любой игре – алгоритм поиска нужных полей остается неизменным.

Программа поддерживает русский язык. Требования Cheat Engine к аппаратной конфигурации ПК лояльные – программа работает даже на слабых компьютерах. В продуманной навигации с легкостью разберется даже новичок. Изменения дополнительных параметров не требуется, делайте это только в том случае, если вы – продвинутый пользователь. Подобная необходимость возникает при сложном поиске, когда требуется изменить параметры конкретного противника и не затрагивать остальное игровое окружение.

Программа Cheat Engine легка в освоении и не вызывает сложностей у новичков. Геймеры пользуются этой программой каждый день и получают в любимых играх максимум удовольствия. Загрузите Cheat Engine на нашем портале и забудьте о возможных сложностях в видеоиграх. Программа работает в Windows XP и новее. Cheat Engine – это универсальный инструмент.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *