Cheat engine как найти значение полоски

На написание этой статьи меня подтолкнул Ramil.

В таких играх как: Call Of Duty Modern Warfare 3, Medal Of Honor, и Battlefield нету индикатор здоровья, но когда в ГГ стреляют то сверху появляется “Красная полоса” и некоторым очень трудно её найти, об этом и статья!

В этих играх адрес жизней DMA, так что если мы умрем или перезагрузим игру то всё насмарку.

1. Запускаем Cheat Engine (Любая версия)

2. Запускаем игру

3. Возвращаемся к Cheat Engine

4. Выбираем процесс игры “iw5sp.exe

5. Заходим в одиночную игру, выбираем любую миссию

6. Возвращаемся к Cheat Engine

7. Выбираем тип сканирования (“Scan Type”) из раскрытого списка выбираем “Unknown initial value” (Это означает “Поиск Неизвестного значения”)

8. Выбираем тип значения (“Value Type”) из раскрытого списка выбираем “4 byte” (Это означает “4 Байта”) (В других играх, может быть другой тип)

9. Нажимаем “Fist Scan” (Это означает “Начать поиск”)

10. В игре даем в себя стрелять и сверху появилась “Красная полоска” когда она появилась резко ставите игру на паузу (Это необходимые действия перед отсеиванием)

11. Возвращаемся к Cheat Engine

12. В “Scan Type” (Это означает “Тип сканирования”) выбираем “Decreased value” (Это означает “Значение уменьшилось”)

13. И после этого нажимаем “Next Scan” (Это означает “Следующие сканирование” или “Отсеивание”)

14. Возвращаемся в игру

15. Находим укрытие, ждем пока “Красная полоска” не пропадет с экрана, когда пропала ставим игру на паузу

16. Возвращаемся к Cheat Engine в “Scan Type” (Это означает “Тип сканирования”) выбираем “Increased value” (Это означает “Значение увеличилось”)

17. И после этого нажимаем “Next Scan” (Это означает “Следующие сканирование” или “Отсеивание”)

18. И так делаем несколько раз пока не останется несколько адресов (Адрес жизней или нет можно проверить путём “Заморозки адреса”, слево адреса есть “Маленький квадратик” (“Active”) – Он замораживает адрес, или активирует скрипты, достаточно нажать в середину “Маленького квадратика” и в нем появится “Крестик” – это означает что адрес заморожен, или скрипт активирован, деактивировать – можно, повторно нажав в середину “Маленького квадратика”)

19. Когда заморозили адрес, заходим в игру и опять даем врагов в себя стрелять, если враги в тебе стреляют а ГГ не умирает, то адрес наш!

P.S В новых играх очень трудно и немножко долговато найходить адрес здоровья, так что нужно быть очень внимательными при “Отсеивании”. Если инструкция работает с адресом нашего ГГ и адресами здоровья врагов то читаем эту тему: http://forum.gamehac…%B0-id-players/

Скрипт “Бесконечное здоровье” в Call Of Dity Modern Warfare 3 (v1.0) (Автор скрипта Grom-Skynet)


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(zd)

newmem:
push edx
mov edx,[010BF428]
cmp [esi+00000150],edx
pop edx
je zd
sub ecx,ebp
mov [esi+00000150],ecx
jmp returnhere

zd:
db 90 90
mov [esi+00000150],ecx
jmp returnhere

iw5sp.exe+22058:
jmp newmem
nop
nop
nop
returnhere:

[DISABLE]
iw5sp.exe+22058:
sub ecx,ebp
mov [esi+00000150],ecx
dealloc(newmem)


Изменено 7 мая, 2012 пользователем 24K

24K, можешь поправить свой текст удалив мои примечания или оставь как есть



Ученик

(43),
на голосовании



11 лет назад

Голосование за лучший ответ

Артём Есин

Профи

(734)


11 лет назад

эмм, ну как правило, полоска=100% => заходишь в C.E. открываешь то что надо, и в Scan type выбираешь Unknown intial value сканируешь, дальше после урона, сканируешь еще раз, и пытаешься найти результат.

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

1

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

2

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

3

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

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

Источник

Нахождение динамического адреса в памяти

Пытаюсь теперь на шарпе перейти по этому поинтеру и найти нужный мне динамический адрес. Но ничего не получается, так как если брать адрес engine.dll (пусть будет 0D2F0000) и к нему прибавлять значение 00611CC8 уже мы не попадаем на нужный адрес 082В7400. хз в чем проблема, прошу подсказать в чем ошибка или в каком направлении копать

Просьба не слать меня в гугл!! итд

Вот исходник фрагмента моей проги, но думаю что проблема не в ней

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

Нахождение статического адреса в памяти процесса
Всем привет, может кто-нибудь помочь найти статический адрес в памяти процесса при помощи c#.

Нахождение адреса стороннего процесса в виртуальной памяти
Для нахождения адреса текущего процесса существует GetSystemInfo с.

Нахождение наибольшего однобайтового числа, расположенного в памяти, начиная с адреса 08FFН по 0905Н
Задача: Написать программу нахождения наибольшего однобайтового числа, расположенного в памяти.

Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти))
Вот тут появилась такая интересная задача: требуется сделать программу которая управляет 1024.

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

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

Почему разные адреса одного и того же элемента динамического массива?
Я создаю динамический массив и отправляю его в функцию, если потом сравнивать адреса элементов.

Возможность назначения шлюза по умолчанию при использовании динамического IP-адреса.
Есть сеть из 30 машин с windows XP (статические адреса) и windows 7 (преимущественно статические.

Источник

Thread: Поиск базового адреса, смещения. Jade Dynasty

Thread Tools
Display

Поиск базового адреса, смещения. Jade Dynasty

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

Note:
— здесь не дается определения базовому адресу, смещениям и т.п.
— здесь нет детального описания функций и окон CE
— здесь нет детального описания ассемблерных команд
— данное руководство на 90% применимо и для Perfect World’а, т.к. движки у этих двух игр одинаковые.
— перед многими значениями стоит символ «$». Используется для идентификации шестнадцатеричных величин

Приступим.
Загружаем клиент Jade Dynasty, запускаем Cheat Engine (CE) и присоединяем последний к процессу игры «elementclient.exe». Объектом поиска будет самая доступная величина – количество жизней (HP), в моем случае, равная 779 единиц. 1586 1
В поле «Value» CE вводим значение 779, выбираем тип сканирования «Exact value» и тип величины «4 bytes», и начинаем сканирование «first scan»

1586 2

По завершению первого сканирования, CE отобразит список адресов (если он не очень велик), значения которых в момент поиска равнялись 779. Таких адресов может быть 10, может быть и сотни тысяч. Поэтому, нам требуется точно определить нужный адрес. Возвращаемся в игру и любым способом меняем значение HP, например, снимем с чара какую-либо вещь, дающую прирост HP: 1586 3

Как только значение изменится, продолжаем поиск в CE, при этом тип сканирования оставляя «Exact value»

1586 4

Найдено 4 адреса. Можно еще раз изменить значение HP и посмотреть, как будут меняться значения у этих адресов. 1586 5

Через несколько секунд становится ясно: два первых адреса не имеют отношения к искомой величине, а два последних – текущее значение HP и максимальное.

1586 6

Добавляем оба адреса в список и, выбрав «HP max», вызываем контекстное меню.

1586 7

Нам требуется отыскать участок кода, который записывает значения в выбранный адрес $1265F098: «Find out what writes to this address»

1586 8

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

1586 9

Посмотрим дополнительную информацию для инструкции по адресу «$0046b5ca»:

1586 10

1586 11

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

Берем первый из найденных адресов (совсем не обязательно, что данный адрес даст какой-либо результат), добавляем его в список (название +$288 для более легкой идентификации смещений) и теперь начнем поиск того, что обращается к данному адресу

1586 12

Список опкодов достаточно велик, что, по большей части, свидетельствует о правильности поиска.

1586 13

1586 14

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

1586 15

Человек, знакомый с ассемблером, сразу видит результат… К этому результату вернемся чуть позже, т.к. завершим процедуру поиска базового адреса по выработанному алгоритму.
$039F6E20 – следующая величина для поиска.

1586 16

1586 17

1586 18

Please, post your questions on forum, not by PM or mail

I spend my time, so please pay a little bit of your time to keep world in equilibrium

Источник

Тема: Как легко и просто сделать чит!

Социальные закладки

Опции темы
Отображение

thanks

Делать нефиг, выходной, решил рассказать большую часть того, что умею)) сам учусь ещё, и буду учиться всегда. ). Есть множество уроков в которых рассказывается как делать читы, но для обычного «Юзера» могут быть они не понятны. В этом уроке я постараюсь объяснить всё так, чтобы было понятно любому новичку. Если вы бог реверсинжиниринга, то вы не узнаете не чего нового из этого урока. И так кратко о программах которые нужны: как не странно нам понадобится CheatEngine, с помощью него мы будем искать значения, так же нам понадобится ReClass, для создания классов, чтобы не писать адрес каждого значения, и естественно нам нужна Visual Studio или Dev-C++ для написания самого чита.
Объяснять я буду на примере GTA San Andreas.
1)И так, для начала ознакомимся с игрой и посмотрим, какие значения мы сможем найти. Сразу видим две полоски в верху экрана, одна здоровье, другая броня, чтобы найти их значение открываем cheat engine и так как это полоска, а значения таких полосок чаще всего float, поэтому ищем не известное значение типа float,

Desktop 160326 1757

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

Desktop 160326 1801

затем увеличим значение с помощью чит кода (в других играх можно и аптечкой), и отсеиваем, сказав при этом, что значение увеличилось

Desktop 160326 1804

проделываем это пока не останется 1-2 значения, и проверяем его: Замораживаем значение

Desktop 160326 1810

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

2) Ищем универсальный статический адрес для наших будущих классов, cтавим бряк, для этого выбираем наш адрес и нажимаем F5, появится окно

Desktop 160326 1815

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

Desktop 160326 1817

Desktop 160326 1830

Теперь вылезло новое окно, «Настройка поиска», я настрои поиск вот так: поток 1, максимальное смещение 128, максимальный уровень 2

Desktop 160326 1839

Теперь выбираем адрес на свой вкус, я выберу gta_sa.exe+76F5F0 + offset 0x00, двойноё щелчёк и он дабавится в таблицу cheat engine, так как этот адрес статический, для удобства я его запишу по другому 0xB6F5F0.

3) Начинаем покорять reclass!
Теперь откроем reclass, выберем процесс, создадим новый класс

Desktop 160326 1851

Вставим наш адрес (Базовый адрес) и придумаем имя классу

Desktop 160326 1856

Теперь перейдём к реверсингу, чтобы в будущем не писать всяких больших функций, для поиска адреса по указателям, мы будем реверсить от статического адреса, не зря же в реклассе есть такая штука как pointer, и так как мы помним смещение до первого поинтера у нас было 0x00, по этому открываем в реклассе вкладку Modify, выделяем наш адрес и нажимаем на «кнопку» Pointer с права внизу

Desktop 160326 1910

Добавляем ещё адресов кнопкой add 1024, чтобы в левой колонке появилось смещение 540, выделяем его и ставим modify->type значение float, затем переименовываем в Hilth, или как хотите, у меня это выглядит вот так:

Desktop 160326 1917

Теперь найдём координаты игрока, заходим в CE, устанавливаем не извесное значение, ищем, изменяем положение, отсеиваем, я искал значение по z, его легче всего найти. Так же ставим бряк, затем ищем так же как и в первом случае, у меня нашолся указатель с базой gta_sa.exe+76F5F0, а это такой же базовый адрес, как и у нашего хп, и это радует.

Desktop 160326 1928

Назовём наши координаты и сгенерируем наш класс, для того чтобы использовать его на c++

Desktop 160326 1933

Desktop 160326 1934

У меня получился код

//Generated using ReClass 2011 by DrUnKeN ChEeTaH

class Player ;
class mPlayer ;
class Coord ;

class Player
<
public:
mPlayer * N02D52422 ; //0x0000
char _0x0004 [ 60 ];

class mPlayer
<
public:
char _0x0000 [ 20 ];
Coord * Coordinates ; //0x0014
char _0x0018 [ 1320 ];
float HILTH ; //0x0540
char _0x0544 [ 4 ];
float ARMOR ; //0x0548
char _0x054C [ 4852 ];

class Coord
<
public:
char _0x0000 [ 48 ];
float CoordX ; //0x0030
float CoordY ; //0x0034
float CoordZ ; //0x0038
char _0x003C [ 4 ];

Function объявляем новую функцию,

void Function:: hilTH ()
<

#include
#include «Function.h»
#define new_Thread(Function) CreateThread(0,0,(LPTHREAD_START_ROUTINE)Function,0,0,0);//Создание потоков

return 0 ; //вернём 0
>

new_Thread ( MainThread ); //Запуск функции MainThread() в новом потоке

//Generated using ReClass 2011 by DrUnKeN ChEeTaH

class GloballPlayer ;
class myPlayerCondition ;
class N036F3A76 ;
class myPlayerCoordinates ;
class GlobalOdjects ;
class ThePlayerCars ;
class ConditionActiveCarPlayer ;
class PlayerSkillS ;
class MainlandStats ;
class RedPoint ;

class GloballPlayer
<
public:
char _0x0000 [ 584 ];
float PlayerCamerTopBottom ; //0x0248
char _0x024C [ 4 ];
float PlayerCameraDistance ; //0x0250
char _0x0254 [ 4 ];
float PlayerCameraCircle ; //0x0258
char _0x025C [ 916 ];
myPlayerCondition * PlayerCondition ; //0x05F0
char _0x05F4 [ 908 ];
__int32 N036CAB05 ; //0x0980
char _0x0984 [ 1724 ];
static GloballPlayer * Singleton ( int * addres )
<
return *( GloballPlayer **) addres ;
>
>; //Size=0x1040

class myPlayerCondition
<
public:
char _0x0000 [ 20 ];
myPlayerCoordinates * PlayerCoordinats ; //0x0014
char _0x0018 [ 116 ];
float Jump ; //0x008C
char _0x0090 [ 1200 ];
float myPlayerHilth ; //0x0540
float MaxCondition ; //0x0544
float myPlayerArmor ; //0x0548
char _0x054C [ 116 ];

class N036F3A76
<
public:
char _0x0000 [ 64 ];

class myPlayerCoordinates
<
public:
char _0x0000 [ 48 ];
float Coord_X ; //0x0030
float Coord_Y ; //0x0034
float Coord_Z ; //0x0038
char _0x003C [ 2052 ];

class GlobalOdjects
<
public:
char _0x0000 [ 2300 ];
ThePlayerCars * Cars ; //0x08FC
char _0x0900 [ 832 ];
static GlobalOdjects * Singleton ( int * addres )
<
return *( GlobalOdjects **) addres ;
>

class ThePlayerCars
<
public:
char _0x0000 [ 20 ];
ConditionActiveCarPlayer * ConditionsOlayerCar ; //0x0014
char _0x0018 [ 1088 ];
float WheelSize ; //0x0458
char _0x045C [ 8 ];
float ModelDisplay2D ; //0x0464
char _0x0468 [ 4 ];
float ModelDisplay3D ; //0x046C
char _0x0470 [ 4 ];
float ModelDisplay4D ; //0x0474
char _0x0478 [ 72 ];
float HiltActivCar ; //0x04C0
char _0x04C4 [ 7036 ];

class ConditionActiveCarPlayer
<
public:
float TheDegreeOfRotationOnAxesX ; //0x0000
float TheDegreeOfRotationOnAxesY ; //0x0004
float TheDegreeOfRotationOnAxesZ ; //0x0008
char _0x000C [ 4 ];
float TheBlockModelCoordinatesInAccordanceWithTheReliefX ; //0x0010
float TheBlockModelCoordinatesInAccordanceWithTheReliefY ; //0x0014
float TheBlockModelCoordinatesInAccordanceWithTheReliefZ ; //0x0018
char _0x001C [ 20 ];
float CoordCarX ; //0x0030
float CoordCarY ; //0x0034
float CoordCarZ ; //0x0038
char _0x003C [ 4 ];

class PlayerSkillS
<
public:
char _0x0000 [ 160 ];
__int32 Driving ; //0x00A0
char _0x00A4 [ 248 ];
__int32 Flying ; //0x019C
char _0x01A0 [ 4 ];
__int32 Lung ; //0x01A4
char _0x01A8 [ 12 ];
__int32 Bike ; //0x01B4
__int32 Cycling ; //0x01B8
char _0x01BC [ 8 ];
__int32 Luk ; //0x01C4
char _0x01C8 [ 524 ];
float FAT ; //0x03D4
float Stamine ; //0x03D8
float Muskule ; //0x03DC
__int32 N0423A370 ; //0x03E0
float Sexy ; //0x03E4
char _0x03E8 [ 152 ];
float Resepcts ; //0x0480
char _0x0484 [ 16 ];
float Pistol ; //0x0494
float Silenced ; //0x0498
float Degl ; //0x049C
float Shotgan ; //0x04A0
__int32 Sawn_Off ; //0x04A4
float ShoutGun ; //0x04A8
float MachinePistol ; //0x04AC
float SMG ; //0x04B0
float AK_47 ; //0x04B4
float M4A1 ; //0x04B8
char _0x04BC [ 1920 ];
static PlayerSkillS * Singleton ( int * addres )
<
return *( PlayerSkillS **) addres ;
>
>; //Size=0x0C3C

class MainlandStats
<
public:
char _0x0000 [ 2436 ];
float Gravitation ; //0x0984
char _0x0988 [ 3832 ];

static MainlandStats * Singleton ( int * addres )
<
return *( MainlandStats **) addres ;
>

class N039BCA3E
<
public:
char _0x0000 [ 1088 ];

class RedPoint
<
public:
char _0x0000 [ 52 ];
float CoordRDX ; //0x0034
float CoordRDY ; //0x0038
float CoordRDZ ; //0x003C
char _0x0040 [ 148 ];
float twoCoordRDX ; //0x00D4
float twoCoordRDY ; //0x00D8
float twoCoordRDZ ; //0x00DC
char _0x00E0 [ 3936 ];

static RedPoint * Singleton ( int * addres )
<
return *( RedPoint **) addres ;
>

При умелом подходе можно использовать лишь 1 адрес.
Более подробно о Reclass вы можете узнать из видеоурок а [Вы должны быть зарегистрированным и не заблокированным пользователем для того чтобы просматривать ссылки зарегистрироваться можно по этой ссылке]

Вот ссылка на исходник Тыч Тыч Тыч Этот исходник подходит для любой мультиплеерной gta (SAMP, CR и т.п.)
Только файлы исходного кода, по этому без VT
С трейнерами приловчусь, и добалю в эту тему). И про RakNet, тоже здесь напишу, когда разберусь)

Источник

Поиск базового адреса программы

Взлом и программирование

: Аспекты программирования при реализации различных методик взлома.

noavatar

Поиск базового адреса программы

Есть программа TrainMe.
В ней есть переменная: золото.
Через Cheat Engine я нашёл указатель первого уровня на неё:
«THREADSTACK0»-00000CC8
50

Через Cheat Engine я определил базовый адрес программы: 0046FF18

На C++ я написал такой код:
#include
#include
#include
#include
#include
#include
#include

#pragma comment( lib, «psapi» )

using namespace std;

DWORD Base_Adress = 0x0046FF18; // Базовый адрес программы(игры)
DWORD pid;
DWORD value_1 = 0x00000CC8; // Первое смещение
DWORD get_value;
DWORD get_value_2;
DWORD get_value_3;

Источник

Содержание

  1. Как найти указатель в Cheat Engine
  2. Для чего нужен поиск указателей
  3. Найти одноуровневый указатель
  4. Найти многоуровневый указатель
  5. Тема: Как писать читы: №1 Ищем нужное значение с помощью Cheat Engine
  6. Социальные закладки
  7. Как в чит энджин найти неизвестное значение
  8. Как пользоваться Cheat Engine
  9. Как работает программа Cheat Engine
  10. Как пользоваться популярной программой Cheat Engine
  11. Преимущества программы Cheat Engine
  12. BootDev
  13. Страницы
  14. 2019-11-17
  15. Cheat Engine: Прохождения Туториала Шаги 1 и 2
  16. Содержание
  17. Туториал
  18. Шаг 1
  19. Шаг 2

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

1

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

2

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

3

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

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

Источник

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

Социальные закладки

Опции темы
Отображение

thanks

Для этого мы будем пользоваться программой для читинга 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 есть хорошая функция под название «Value between» эта функция может найти неизвестное значение в заданном диапазоне.

Я буду искать здоровье в игре BRINK, здоровье обозначается вот так:

c3904dfcfa63

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

0a8b45a11ce1

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

6.В программе выбираем 11809d2d601dи жмем, 440527367180получается во тот так

5d1f531a966b

И жмем на 37f99148a841

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

d38a23cea995

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

b9a368e3e3fd

10.Играем и радуемся бессмертию…

Если что то было непонятно все вопросы пишем в этой теме!
© Cheat-Master.ru
Steam razer526Skype dimaaaa45
71133

Источник

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

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

Как работает программа Cheat Engine

Cheat Engine представляет собой высокопроизводительный HEX-редактор, работающий в стандартном режиме и Speed Hack. Пользоваться программой сможет даже новичок, по-крайней мере, изменить количество денег или увеличить здоровье главного героя в 10 или 100 раз – базовые операции не представляют собой ничего сложного.

Как пользоваться популярной программой Cheat Engine

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

Нажимаем кнопку с изображением компьютера.

1

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

2

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

3

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

4

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

5

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

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

6

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

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

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

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

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

Источник

BootDev

Создание загрузочных дисков и прочие полезные мелочи

Страницы

2019-11-17

Cheat Engine: Прохождения Туториала Шаги 1 и 2

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

scr 2019 11 17 006

Содержание

Туториал

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

Запустить туториал программы Cheat Engine можно из меню Help, основного окна программы.

scr 2019 11 12 001

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

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

scr 2019 11 12 003

Со второго шага и далее, начинаются практические задания.

scr 2019 11 12 004

Шаг 1

Запустив первый туториал (неигровой), вы увидите первый шаг. В данном шаге описывается, как выбрать целевой процесс туториала для дальнейшей работы с ним.

rzEps

Откроем процесс туториала в программе Cheat Engine. Открыть окно выбора процесса можно двумя способами, либо с помощью меню File → Open process.

scr 2019 11 12 005

Либо с помощью соответствующей кнопки на панели инструментов.

scr 2019 11 12 006

Окно выбора процесса выглядит следующим образом.

scr 2019 11 14 001

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

scr 2019 11 14 005

Найдя нужный процесс, неважно в какой вкладке, выделяем его щелчком мыши, и нажимаем на кнопку Open. Окно выбора процесса при этом закроется, а в основном окне программы Cheat Engine появится информация о выбранном для работы процессе.

scr 2019 11 14 004

Теперь Cheat Engine может управлять процессом запущенного ранее туториала.

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

scr 2019 11 14 006

Шаг 2

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

vVGIf

В нашем распоряжении счетчик здоровья Health со значением 100. При нажатии на кнопку Hit me значение здоровья уменьшается. Чтобы решить данное задание, необходимо задать счетчику здоровья значение 1000. Сделать это без применения сторонних программ, естественно невозможно.

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

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

И так, приступим к выполнению шага 2. На данный момент у нас запущен туториал на втором шаге, и так же запущен Cheat Engine с открытым процессом туториала.

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

Вводим текущее значение здоровья, в нашем случае это целое число 100, в поле Value (Значение) программы Cheat Engine, и нажимаем на кнопку First Scan (Первое сканирование).

scr 2019 11 17 001

По завершению первого сканирования, левое поле окна Cheat Engine заполнится всеми адресами памяти содержащими число 100. Кроме этого, станет доступна кнопка Next Scan (Последующее сканирование).

scr 2019 11 17 002

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

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

Нажмем на кнопку Hit me чтобы значение здоровья уменьшилось.

scr 2019 11 17 003

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

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

2019 11 17 1

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

Приступим. Введем изменившееся значение, в моем случае это 95, в поле Value, но уже с последующим нажатием на кнопку Next Scan, тем самым запуская процесс поиска по уже найденным ранее адресам.

scr 2019 11 17 004

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

scr 2019 11 17 005

Теперь осталось только изменить значение данного участка памяти. Для этого достаточно выполнить клик правой кнопкой мыши по целевому адресу, и в открывшемся меню выбрать пункт Change value of selected addresses. После, в открывшемся окне ввести нужное значение, в случае туториала это число 1000, и нажать на кнопку OK.

2019 11 17 2

После изменения значения, замечаем как кнопка Next, окна туториала, стала активной, что свидетельствует об успешном выполнении задания.

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

Источник

This entry needs a lot of work. Please contribute if you can.

Check this page to see if there are some suggestions for adding to Cheat Engine:Memory Scanning.

Initial contribution, just placing a few ‘things about ce scanning’ here to work out later.


Memory scanning is one of the most major features of Cheat Engine.
Memory scanning means searching for a specific value or a pattern in the memory provided to the application.
Cheat Engine’s scanning makes use of multiple processor cores when available.

Cheat Engine allows you to search addresses in various ways using different types of searching.

Firstly, you need to define what type of search you want to perform.

What you need to define is: Value Type, Scan Option, Scan Range and other smaller options.

Value Type

The available types Cheat Engine can scan for are:

  • Binary
  • Byte (values between 0 and 255 or -128 to 127 if signed)
  • 2 byte (values between 0 and 65535 or -32768 to 32767 if signed)
  • 4 byte (values between 0 and 4294967295 or -2147483648 and 2147483647 if signed)
  • 8 byte (values between 0 and 18446744073709551615 or -9223372036854775808 and 9223372036854775807 if signed)
  • Float (values between 1.5 x 10^-45 and 3.4 x 10^38 )
  • Double (values between 5.0 x 10^-324 and 1.7 x 10^308 )
  • Array of bytes
  • String (/Text)
  • All (Byte to Double)
  • Grouped

Which one you should choose depends on the value and type of the value you want to search for.
A value that only switches between 1 and 0 is often a Binary.
While an integer number (1, 3, 4599, 15686, etc…) is most often a 4-byte value.
Strictly non-integer numbers are always Float or Double. Small numbers are often Float, bigger ones Double.
Text is often stored as a String/Text.

Scan Option

Sometimes you may not know the exact number of a value you want to search for, or it changes too often to scan normally. That’s why Cheat Engine provides several ways of looking for values. These scan options make it possible to find any value, whether you know it or not.
The options available are divided in two: First Scan options and Next Scan options.

First Scan options are:

  • Exact Value
  • Bigger than…
  • Smaller than…
  • Value between…
  • Unknown initial value

Next Scan options are:

  • Exact Value
  • Bigger than…
  • Smaller than…
  • Value between…
  • Increased Value
  • Increased Value by…
  • Decreased Value
  • Decreased Value by…
  • Changed Value
  • Unchanged Value
  • Same as First Scan

All these options speak for themselves. Cheat Engine remembers the values found in the previous scan, allowing it to compare new values with the old ones and revert to a previous scan. It also remembers the values of the First Scan.

Scan Range

Cheat Engine only scans between the given range markers. Default are these From: 00400000 To: 7FFFFFFF
If you know for certain that a certain address must be between two addresses, then you can change these markers and Cheat Engine will only search between those.


Fast Scan: Fast scan speeds up the scanning by skipping unaligned(by 4) memory addresses. Aligned address means that it can be divided by the alignment number and the result will not have a remainder(or will have a remainder of 0). Unaligned means that when an address is divided by the alignment number, result has a non-zero remainder. For example, address 0x40000 is aligned by 4 and also aligned by 0x1000 because after dividing it by both alignment numbers, remainder of the result is 0 in both cases. Address 0x40004 is aligned by 4 but isn’t aligned by 0x1000 because when you divide it by 4, the remainder is 0, but when you divide it by 0x1000, the remainder is 4. Number 0x40001 is not aligned by neither 4, nor 0x1000. Most objects in memory are aligned by 4, but not always.

When you perform a scan, Cheat Engine will provide you with a list of addresses matching your search. Shown values of variables at found addresses are updated as the actual in-game values of variables change, at a rate set in the Settings menu.
There are two types of addresses in this list: Green ones and black ones.
Green means static addresses. Whenever you load the application these addresses will stay the same/hold the same value.
These green addresses show up as absolute virtual addresses in the list, but are actually offsets to base address of one of the loaded modules in the process’ address space. So when you have static(green) address 4075FFB0 and module’s base address is 40000000, it is calculated as 40000000+75FFB0, which Cheat Engine often shows you as ModuleName.exe+75FFB0.

Black means dynamic addresses. Variables at these addresses will change location(variables will change their addresses) whenever you load the application, and even while the application is running. Using pointers you can find static addresses for these dynamic ones.

Grouped

Grouped scanning allows you to find a structure more quickly when you know its layout. Individual values are in the format “type:value”, separated by spaces. For example if you know that health is an integer and your current health is 75/100, and that the structure has the current value, an unknown 4 byte quantity, and then the max value, you can search for this:

4:75 4:* 4:100

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