Руководство по cheat engine

Cheat Engine — один из ведущих инструментов для ОС Windows, используемый игроками для редактирования различных значений игры в соответствии с их требованиями для преодоления различных ограничений игры (или просто для развлечения). Он сканирует память и использует функцию отладчика для выполнения своей операции (например, мошенничества в играх).

Как использовать чит-движок

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

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

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

1. Загрузите и установите Cheat Engine.

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

Загрузите Cheat Engine с официального сайта

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

Отказаться от установки PUP при установке Cheat Engine

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

2. Ноу-хау в пользовательском интерфейсе

В верхней части окна Cheat Engine у ​​вас есть следующие пять меню:

  1. Файл
  2. Редактировать
  3. Таблица
  4. D3D
  5. Помощь

Меню Cheat Engine

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

  1. Обозреватель процессов
  2. Открытые чит-таблицы
  3. Сохранить текущие данные

Значки на панели быстрого доступа Cheat Engine

3. Базовый рабочий процесс Cheat Engine

Во-первых, пользователь щелкает Process Explorer (чтобы открыть запущенные процессы в системе), и пользователю отображаются три вкладки, а именно:

  1. Приложения
  2. Процессы
  3. Окна

Список процессов, показывающий приложения, процессы, вкладки Windows

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

Выберите процесс HD Player в списке процессов Process Explorer

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

Окно после выбора процесса в Cheat Engine

Как видите, мы можем примерно разделить это окно на 4 части:

  1. Выбранный процесс
  2. Параметры сканирования
  3. Обнаружены процессы (эти процессы будут показаны только после сканирования операций выбранного процесса).
  4. Выбранные процессы и редактирование их значений (вы можете редактировать значения найденных процессов в этом разделе).

4. Используйте Cheat Engine на BlueStacks [Step by Step]

Довольно основного обсуждения, давайте погрузимся в океан модификаций игры. В качестве примера использования мы обсудим процесс для эмулятора BlueStacks Android, и тот же процесс можно использовать для редактирования значений в других играх (на базе Windows или эмулятора).

Использование Cheat Engine на BlueStacks [Step by Step]Чтобы использовать Cheat Engine в играх BlueStacks, Cheat Engine может использовать процесс HD-Player или сканировать физическую память устройства для выполнения своих команд.

5. Используйте процесс HD-Player для редактирования значений игры.

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

  1. Запустите Cheat Engine и откройте эмулятор BlueStacks.
  2. Теперь в Cheat Engine щелкните значок Process Explorer и перейдите на вкладку Processes.Откройте обозреватель процессов Cheat Engine
  3. Затем выберите процесс, который завершается в HD-Player.exe (например, 00003294-HD-Player.exe), и нажмите «Открыть».Откройте процесс HD-Player exe в Cheat Engine
  4. Теперь в BlueStacks запустите игру (например, Subway Surfer) и соберите несколько монет (например, 3).
  5. Затем поставьте игру на паузу и перейдите в окно Cheat Engine.Собирайте монеты в Subway Surfer и приостанавливайте игру
  6. Теперь введите количество собранных монет в поле «Значение» (например, 3) и установите для параметра Тип сканирования значение «Точное значение».Установите значение 3 и нажмите кнопку первого сканирования в Cheat Engine.
  7. Затем установите Тип значения на 4 байта и нажмите кнопку «Первое сканирование».
  8. Теперь в BlueStacks соберите еще несколько монет (например, всего 14 монет) и поставьте игру на паузу.
  9. Затем введите 14 в поле «Значение» и нажмите кнопку «Следующее сканирование».Соберите еще немного монет в Subway Surfer и приостановите игру
  10. Теперь проверьте, есть ли несколько процессов, отображаемых на левой панели, если нет, повторяйте вышеуказанные шаги, пока несколько процессов не отобразятся на левой панели.Введите стоимость монет в Cheat Engine и нажмите кнопку «Следующее сканирование».
  11. Затем дважды щелкните первый процесс и установите для него значение 8000.Установите значение 8000 для первого найденного процесса в Cheat Engine.
  12. Теперь поиграйте в игру и проверьте, увеличилось ли количество монет.
  13. Если нет, то поставьте игру на паузу и в Cheat Engine установите значение одного из других найденных процессов на 8000.Установите значение других найденных процессов на 8000.
  14. Теперь поиграйте в игру и проверьте, увеличилось ли количество монет в соответствии с вашими требованиями.Установите значение других найденных процессов на 8000.
  15. Если нет, повторите то же самое для других найденных процессов (один за другим) в Cheat Engine, пока не будет найден требуемый процесс. Найдя их, вы можете увеличить количество монет в соответствии с вашими требованиями.

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

6. Используйте процесс физической памяти для редактирования значений игры.

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

  1. Откройте настройки приложения Cheat Engine и на левой панели перейдите на вкладку «Параметры отладчика».Откройте настройки чит-движка
  2. Теперь выберите Use VEH Debugger и откройте вкладку Extra.Включить использование отладчика VEH в Cheat Engine
  3. Затем отметьте опцию «Чтение / запись памяти процесса» и нажмите OK.Включить чтение / запись памяти процесса в Cheat Engine
  4. Теперь запустите игру в BlueStacks и соберите несколько монет.
  5. Затем выполните шаги с 5 по 14 метода HD Player (обсуждаемого выше) и, надеюсь, вы сможете изменить значение игры в соответствии с вашими требованиями.

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

  1. Во-первых, отключите параметр «Чтение / запись памяти процесса» на вкладке «Дополнительно» (шаг 3) программы Cheat Engine и перейдите на вкладку «Параметры сканирования».
  2. Теперь включите MEM_Mapped в настройках сканирования и попробуйте еще раз описанный выше метод.Включите MEM_Mapped в настройках сканирования Cheat Engine

Для более продвинутых вариантов редактирования значений игры вам, возможно, придется выполнить рутирование версии BlueStacks для Android и установить CE Server на BlueStacks (но это обсуждение не входит в объем данной статьи) или вы можете попробовать Cheat Engine с другим эмулятором Android. .

Теперь, когда у вас есть общее представление о том, как работает Cheat Engine, самое время пройти внутреннее руководство по Cheat Engine в меню «Справка».

Откройте руководство по Cheat Engine в меню справки

По завершении обучения вы можете попробовать изменить значения в другой игре (например, Plants Vs Zombies). Для более продвинутых игр вы можете использовать значения / процесс, отслеживаемые другими игроками (или таблицы импорта), опубликованные на форумах сообщества. Кроме того, сейчас самое время использовать сервер CE Community для импорта игровых значений, процессов или таблиц и улучшения ваших игровых навыков. Этого достаточно для базового руководства Cheat Engine, так что продолжайте наслаждаться игрой и получайте удовольствие!


Download Article


Download Article

This wikiHow teaches you how to use Cheat Engine to exploit some computer games. Cheat Engine is a memory scanning tool. It allows you to access data stored in your computer’s memory and make changes to that data. This allows you to change information in a game, such as health, ammo, score, lives, and the number of things you have in your inventory.

Things You Should Know

  • You can download Cheat Engine for Windows or macOS from https://cheatengine.org/downloads.php.
  • You can use Cheat Engine to change the number of items in your inventory by modifying their aspect numbers.
  • Not all games work with Cheat Engine, but you’ll have the best luck with single-player Steam games.
  1. Image titled 363032 5

    1

  2. Image titled 363032 6

    2

    Click Download Cheat Engine. It’s a large link in the middle of the page.

    • This button will also have the current version of Cheat Engine listed on it (e.g., Download Cheat Engine 6.7).
    • If you’re attempting to use Cheat Engine on a Mac, click the Download Cheat Engine 6.2 For Mac link instead.

    Advertisement

  3. Image titled 363032 7

    3

    Install Cheat Engine. Doing so will vary depending on your computer’s operating system:

    • Windows — Double-click the Cheat Engine setup file, click Yes when prompted, click Next, check the «I agree» box and click Next, click Next three more times, uncheck the «I agree to install McAfee WebAdvisor» box and click Next, and click Install. Once setup completes, click Next if prompted, then click Finish.
    • Mac — Double-click the Cheat Engine DMG file, verify the installation if prompted, click and drag the Cheat Engine logo onto the «Applications» folder, and follow any on-screen instructions.
  4. Image titled 363032 8

    4

    Open Cheat Engine. Once you’ve finished installing Cheat Engine, open Start

    Windows Start

    (Windows) or Launchpad (Mac), then click the Cheat Engine option.

    • You may have to click Yes or Open before Cheat Engine will open.
  5. Advertisement

  1. Image titled 363032 9

    1

    Start a game. Open the game that you want to use with Cheat Engine.

    • Remember, this cannot be an online multiplayer or server-based game.
  2. Image titled 363032 10

    2

    Click the «Processes» icon. In the Cheat Engine window, click the computer-shaped icon in the top-left corner. This will open a pop-up window with your computer’s current programs in it.

  3. Image titled 363032 11

    3

    Select your game’s process. Scroll through the list of processes until you find your game, then click the game’s name. If you’re attempting to use Cheat Engine for a browser game, you’ll select your browser’s name instead.

    • If your game doesn’t appear in the «Processes» list, you cannot edit it in Cheat Engine.
    • You may first have to click the Processes tab at the top of the window.
  4. Image titled 363032 12

    4

    Click OK. It’s at the bottom of the window. This will open the game in Cheat Engine.

  5. Advertisement

  1. Image titled 363032 13

    1

    Determine a game aspect to change. In order for you to be able to change a game aspect, the aspect must have a number attached to it (e.g., amount of ammo, health, or items).

    • The number must be on-screen. For example, if you want to change the number of a certain item in your inventory, you would first have to open your inventory to the page on which the item’s number is available.
  2. Image titled 363032 14

    2

    Minimize the game window and click over to Cheat Engine. You’ll need to pull up the Cheat Engine window while the game is minimized.

    • Don’t pause the game when you do this.
  3. Image titled Overcome a Fear of Being Kidnapped Step 5

    3

    Click New Scan. It’s at the top of Cheat Engine next to the panel on the left. Any time you want to scan for a new value, you need to click New Scan.

  4. Image titled 363032 16

    4

    Select a scan type. There are five scan types you can do when you start a new scan. The two main ones you’ll be using are «Exact Value» and «Unknown initial value». Use the drop-down menu next to «Scan Type» to select the type of scan you want to do. The scan types are as follows:

    • Exact value: Use this scan type if you know the exact number you want to change. For example, if you know the exact number of lives, or ammo you have, you can select this option.
    • Unknown initial value: In video games, sometimes a value isn’t represented with a number. For example, your health may be represented by a health meter instead of a number. In which case, you don’t have an exact number for how much health you have. There is a number that represents your health, you just don’t see it on-screen. In this case, you can select Unknown initial value.
    • Bigger than…:’ Select this option if you don’t know the exact number you’re look for, but you know the smallest possible value.
    • Smaller than…: Select this option if you don’t know the exact value, but you know the largest possible value.
    • Value between…: This option allows you to enter a range of values to look for.
  5. Image titled 363032 17

    5

    Select a data type: The data type represents how a value is stored in the memory. It can be hard to know what data type to select, so this can take a little guesswork. Use the drop-down menu next to «Data type» to select a data type. If you can’t find the value you are looking for using one data type, click New Scan and try again using a different data type. Some of the more common data types you will be using are as follows:

    • Bytes: 2 Bytes and 4 Bytes are the data types you’ll be using most often. Most Windows applications use 4 Bytes, so start with that. You can also find these values using 2 Bytes. 1 Bytes and 8 Bytes can work as well, but you may run into problems.
    • Float: Floating point data types are values that have a decimal point in the value (though you may not see the decimal point on-screen in the game). Some times games store values as floating points to prevent simple memory scans. If you’re not able to find the value you are looking for by scanning bytes, try scanning for floating points.
    • Double: Doubles are similar to floating points, but they can contain twice the amount of digits. If you are unable to find a value by scanning for bytes or floats, try scanning for it as a double.
    • All: This option scans all values of all data types. This is a good option if you don’t know what you are searching for, but it will also return more search results that you will need to narrow down.
  6. Image titled 363032 18

    6

    Enter the value you want to change and click First scan. For example, if you have 20 bullets left in your ammo, you would type 20 into the «Value» text box. This will scan for all values that have the number «20» in it. This will likely produce a long list of values in the list of addresses, you’ll need need to narrow it down a bit.

  7. Image titled 363032 19

    7

    Return to your game and change the value. How you do this will depend on the game itself; for example, if you’re trying to give yourself more health, you might purposefully damage your own health in order to lower the number. If you want more ammo, you might fire a couple of shots to lower your ammo count.

  8. Image titled 363032 20

    8

    Return to Cheat Engine and scan for the updated number value. Minimize the game again and click back over to Cheat Engine. Type the new number into the «Value» section, then click Next Scan. This will scan all the values in your first scan and narrow down the addresses to the ones that changed to the value you entered in the «Value» bar.

    • Unknown initial value: If you selected «Unknown initial value» for your first scan, select Increased value or Decreased value under «Scan type» depending on if the value (or meter) increased or decreased. This will scan for all values that increased or decreased instead of scanning for an exact number.
  9. Image titled 363032 21

    9

    Repeat the search process until you have 4 or fewer values. You’ll keep changing the number and then searching for the updated number until you have no more than 4 values listed on the left side of Cheat Engine.

    • You should eventually see the previous number you searched for listed in the «Previous» column of each value’s number, while the current value of the item will be in the «Value» column.
  10. Image titled 363032 22

    10

    Add the values to the address list. You can either double-click a value to add it to the address list at the bottom, or you can click an address to select it and click the red, diagonal arrow in the bottom-right corner of the list of values. Doing so will place the values in the list of addresses at the bottom of the window.

    • To select multiple addresses, you can hold «Shift» and click the top address and the bottom address.
  11. Image titled 363032 23

    11

    Change the number to a value you want. Use the following steps to change the value number:

    • Double-click the number below «Value» in the list at the bottom of Cheat Engine.
    • Enter a new number in the «Value» field.
    • Click Ok.
  12. Image titled 363032 24

    12

    Check to see if the value updated in your game. When you re-open the game, the value you edited should reflect the number you just entered. The next part teaches you how to stop a value from changing by replacing it with non-operational code.

    • You may need to change the value one more time before it will update.
  13. Advertisement

  1. Image titled 363032 25

    1

    Scan for a value you want to stop. This part teaches you how to use the Code Finder to find what writes to the address you want to change and then replace it with non-operational code. This will prevent the value from changing in-game. Use the steps in the previous part to find a value you want to change. Add it to the list at the bottom of the screen.

  2. Image titled 363032 26

    2

    Right-click the address and click Find out what access this address. This opens the Cheat Engine Debugger. This displays instructions that write to the address you are accessing.

  3. Image titled 363032 27

    3

    Click Yes. This confirms that you want to attach the debugger to the Cheat Engine process. This opens the Code debugger. The list will be blank when the window first opens.

  4. Image titled 363032 28

    4

    Return to the game and change the value again. Once again, return to your game and do something to change the value you want to stop. This will cause the code instruction that accesses the address you selected to appear in the debugger window.

  5. Image titled 363032 29

    5

    Return to Cheat Engine and click the instruction in the list. There may be more than one address. If that is the case, select the one that doesn’t write to the same base address. Look for the instruction that has a different value between the «[‘ and «]» brackets than the rest.

  6. Image titled 363032 30

    6

    Click Replace. This replaces the code with non-operational (NOP) code. [1]

    • If there is more than one item in the list, go ahead and select all of them.
  7. Image titled 363032 31

    7

    Click Stop. This puts the non-operational code into effect. This will prevent the value from changing in the game.

    • To restore the original code, select the item in the list and clck Show disassembler. Right-click where it says «NOP» and click Restore with original code. If you don’t see this option, click Replace with code that does nothing, click Yes. Then right-click NOP again and select Restore with orignal code.
  8. Advertisement

  1. Image titled 363032 32

    1

    Scan for a value you want to change. Sometimes values can change address either when you restart the game, or in the middle of the game. You can use pointers to find what writes to an address. Once you find the base level static address that doesn’t change, you can change that value.

  2. Image titled 363032 33

    2

    Right-click the address and click Find out what writes to this address. This opens the debugger window.

    • If there is multiple addresses, open a debugger window for as many addresses as Cheat Engine will allow.
  3. Image titled 363032 34

    3

    Return to the game and change the value again. Once again, return to your game and do something to change the value you want to change (i.e. fire your weapon, get hit). This will cause the instruction that writes to that address to appear in the debugger window.

    • If nothing changes in the debugger window, it is not the correct address. Try a different one.
  4. Image titled 363032 35

    4

    Return to Cheat Engine and click the instruction in the list. It’s in the debugger window. There may be more than one address. If that is the case, look for the instruction that has a different set of characters between the «[‘ and «]» brackets than the rest. If there isn’t a single address that has different characters, check to see if the pointer is the same for all of them.

    • If the characters have a + and a number at the end (i.e. [ESI+14]). That is an offset number. Write it down. You’ll need it later.
  5. Image titled 363032 36

    5

    Click More information. This displays instructions that happen when the value changes in the Extra Info screen. This also lists the pointer that writes to the address.

    • You can also find the address by checking the characters in the bracket, and then checking what number comes after those characters listed at the bottom. For example, if the address has «[rdx]» next to it, look for RDX=xxxxxxxx at the bottom.
  6. Image titled 363032 37

    6

    Click the checkbox next to «Hex» and do a new scan for the pointer address. The address of the pointer is listed in the text that says «The value of the pointer needed to find this address is probably xxxxxxxxx». Use the following steps to search for the address at the end of this sentence.

    • Click New Scan.
    • Click the checkbox that says «Hex» next to the «Value» field.
    • Enter the pointer address in the Value field and click First scan.
  7. Image titled 363032 38

    7

    Double-click the pointer address. This adds the address to the list at the bottom of Cheat Engine.

    • If the address is listed in green in the scan results. This means it is a static address and probably the pointer you are looking for. In some cases, the pointer you find may also be a pointer. This is called a multilevel pointer. In this case, you’ll need to repeat these steps for each pointer you find in order to find out what the root static pointer address is.
  8. Image titled 363032 39

    8

    Double-click the number below «Address». This opens the «Change address» dialogue box.

  9. Image titled 363032 40

    9

    Copy the address in the field and click Cancel. To copy the address, simply highlight the entire text in the field at the top of the «Change address» box. Right-click it and click Copy. Then click Cancel to close the field.

  10. Image titled 363032 41

    10

    Click Add address manually. It’s the button on the left above the address list at the bottom of Cheat Engine. This opens a box that looks similar to the «Change address» box, except this one allows you to add an address.

  11. Image titled 363032 42

    11

    Click the checkbox next to «Pointers». This expands the box and adds a new text field where you can enter a pointer.

  12. Image titled 363032 43

    12

    Paste the pointer address in the field below «Pointers» and click Ok. This adds a new address for the pointer that controls the value that you want to change. The address for the pointer you just created will read something like «P—>xxxxxxxx». This indicates that this is a pointer pointing to a specific address.

    • If there is an offset number, enter it in the space above the field where you paste the address.
    • If there is more than one pointer, click Add offset. This will add more offset number boxes above the area where you paste the address. Enter the correct offset number in each box.
  13. Image titled 363032 44

    13

    Click the «Active» boxe next to the pointer address you just added. It’s the box below «Active» in the list address list at the bottom of the screen. This activates pointer.

  14. Image titled 363032 45

    14

    Change the value of the address you just added. The value number for the pointer address you just created should be the same as the address of the value you searched for. If the pointer writes to a different location, the original address you scanned for will no longer be valid. However, you can still change the value of the pointer address you just created. That will work no matter where it writes the value location to. Click the number below «value» for the address you just added. Enter a new numeric value and click Ok.

  15. Advertisement

  1. Image titled 363032 46

    1

    Scan for a value you want to stop. This part teaches you how to use Code Injections to change how the code writes a value. For example, if you lose health every time you get hit, you can change the code so that it increases your health when you get hit.

  2. Image titled 363032 47

    2

    Right-click the address and click Find out what access this address. This opens the Cheat Engine Debugger.

  3. Image titled 363032 48

    3

    Click Yes. This confirms that you want to attach the debugger to the Cheat Engine process. This opens the Code debugger. The list will be blank when the window first opens.

  4. Image titled 363032 49

    4

    Return to the game and change the value again. Once again, return to your game and do something to change the value you want to stop. This will cause the code that accesses the address you selected to appear in the debugger window.

  5. Image titled 363032 50

    5

    Return to the game and change the value again. Once again, return to your game and do something to change the value you want to stop. This will cause the instruction that writes to that address to appear in the debugger window.

  6. Image titled 363032 51

    6

    Return to Cheat Engine and click the instruction in the list. There may be more than one address. If that is the case, look for an instruction that has the word «sub» in the instruction to subtract from the value, or the word «add» or «inc» to increase the value.

  7. Image titled 363032 52

    7

    Click Show disassembler. This opens the code in the disassembler.

  8. Image titled 363032 53

    8

    Select the code that subtracts or increases the value. It is usually the first instruction at the top of the code. It will have wlll most likely have the word «Sub» or «Add» at the start of the code to subtract from the value or add to it.

  9. Image titled 363032 54

    9

    Click Tools followed by Auto Assemble. This opens the auto assembler.

  10. Image titled 363032 55

    10

    Click Template followed by Full Injection. This displays a pop-up window that confirms the address you want to inject code into.

  11. Image titled 363032 56

    11

    Ensure the address is correct and click Ok. Ensure the address in the field is the same address you selected in the Memory Viewer disassembler window. Then click Ok. This opens a new template.

  12. Image titled 363032 57

    12

    Replace the code with it’s opposite. Scroll down to where it says «Code». The line below it is the code that changes the value. If the line starts with «sub», change «sub» to «add». If the line starts with «add», change it to «sub». You can also change the value at the end of the line to change how much you want it to change the value by.

  13. Image titled 363032 58

    13

    Click Execute followed by Yes twice. The «Execute» button is at the bottom of the Code Injection window. You will be asked if you are sure you want to inject the code. Click Yes to confirm. Then you can click Yes or No to open the new code in the disassembler. If the code injection was successful, values in your game will do the opposite of what they are supposed to do. You can gain ammo by firing your weapon instead of losing ammo. You can gain health when you get hit instead of losing health.

  14. Advertisement

  1. Image titled 363032 59

    1

    Scan for a value you want to stop. In some games, multiple objects share the same code. Injecting code into one object will affect all the others too. So you might freeze your own health bar, only to realize that the health of all enemies is also frozen. In this case, you need to find out how to distinguish between different objects and inject a script that only affects the object you want.

    • In order to inject scripts for different objects, you need to know some assembly code. However, it’s not too hard to create a basic script.
  2. Image titled 363032 60

    2

    Right-click the address and click Find out what writes to this address. Once you’ve determined the address of the values you want to change or stop, find out what writes to those addresses, open up the debugger and find out what writes to that address.

  3. Image titled 363032 61

    3

    Select the instruction and click Show disassembler. It’s the instruction that is highlighted when you open the debugger. This displays the instructions in the code disassembler.

  4. Image titled 363032 62

    4

    Right-click the top instruction and click Find out what addresses this instruction accesses. This opens a window that displays a list of all the addresses the instruction accesses when it writes to a new address.

  5. Image titled 363032 63

    5

    Allow all the objects in the game to change their value. This will show a list of all addresses that the instruction accesses. For example, if you are trying to stop your health bar from changing, you can return to your game and get hit. This will display the instruction that accesses that address in the list of accessed addresses window. If you hit an enemy that also shares that instruction, it will also show in the list of accessed addresses window.

  6. Image titled 363032 64

    6

    Select all addresses in the list of accessed addresses window. Once you have an address for all objects that share the same address in the list of accessed addresses, simply click and drag to highlight all of them.

    • Alternatively, you can right-click each individual address and click Show register states.[2]
  7. Image titled 363032 65

    7

    Disect the data of structure of all the listed addresses. Use the following steps to disect the data structure for the list of addresses:

    • Right-click the selected addresses.
    • Click Open disect data with selected addresses.
    • Click Ok.
    • Enter a name for the data structure and click Ok.
    • Click Yes.
    • Enter a starting size of the struct or leave it as is, and click Ok.
  8. Image titled 363032 66

    8

    Find a value that is the same for the player(s), but different for other objects. Whether you are looking at the data structure or the register for each object, you need to find a value that is the same for all allies, but different for the enemies. For example, if Team 1 has two player characters, and Team 2 has two computer-controlled characters, the Team 1 characters may be represented with a value of 1, and Team 2 might have a value of 2.

    • If can’t find a value that is the same for allies, but different for enemies, you can make one. Simply right-click one of the values (such as a pointer), and click Add Element. Select «4 Bytes» as the data type and give it an offset number value that is not taken. Offset numbers are listed to the left in the data dissection structure table.
  9. Image titled 363032 67

    9

    Note the register for the value. Whether you are looking at the register view or data dissection view, the register value is on the left. In the register view, it will be the actual register the instruction writes to (i.e. RSI, RDX, EDX, etc). If you are looking at a data structure, the register will be an offset number or letter listed to the left.

  10. Image titled 363032 68

    10

    Open a new code injection template for the instruction. Return to the Memory Viewer window and open a new code injection template for the instruction that writes to the different addresses. Use the following steps to do so:

    • Click the instruction in the Memory Viewer window.
    • Click Tools in the menu bar at the top.
    • Click Auto Assembler.
    • Click Template in the menu bar at the top.
    • Click Code Injection.
  11. Image titled 363032 69

    11

    Create a new label for the object you want to affect. Labels are listed at the top of the code injection template. Add a new label for the object you want to affect below the existing labels. To add a label, simply type label followed by the name of the label in parenthesis. For example, «label (player)» or «label (enemy)».

  12. Image titled 363032 70

    12

    Create a new section for the label you just created. To create a new section for the label, type the name of the label followed by a colon (:) anywhere before or after the original code.

  13. Image titled 363032 71

    13

    Add code to the label that changes the value of the object you want to effect. This requires a bit of knowledge of assembly code. You’ll need to add a line of code that changes the value for the object you want to change in the way you want to change it. Then you’ll need to add a line that jumps to the exit, original code, return code.

  14. Image titled 363032 72

    14

    Create a comparison code below «newmem». The line that says «newmem:» in the code injection template indicates that the instruction is calling a new memory address. Normally, it will go right into the original code that has a label of (code:) or (originalcode:). Use the «cmp» command to create a line of code that compares the value of the different objects at the registry or registry plus offset number. For example, if RDX with an offset of 14 determines the player team from the computer team, and the player team has a value of 1, you would type cmp [rbx+14],1 to check if an object is a player or not.

  15. Image titled 363032 73

    15

    Add a line of code that jumps to section for the object you want to change. Use the «je» command to jump to the section for your comparison command. For example, if your label is called «player», add the line je player to jump to the player section if the value comparison corresponds to the player.

  16. Image titled 363032 74

    16

    Add code that jumps to the original code. After you create a line of code that jumps to the section for the object you want to change, you need to add a line of code that jumps to the original code if value doesn’t corrispond to the player or ally. Use the «jmp» command to create a line of code that jumps to the orignal code after the line of code that jumps to the original code (or another set of code you create that does something different).

    • One way to keep things simple is not to add any new labels. Just create a comparison code at the end of «newmen:» to differenciate between allies and foes. Then add a line of code that jumps to the exit if it’s an ally. If it’s an enemy, have it jump to the original code. This will make it so that if the player or an ally is attacked (or fires weapons uses consumables, etc), nothing will change, but if an enemy is attacked, the code will execute as normal.
  17. Image titled 363032 75

    17

    Click Execute. This executes the code you entered. If all goes well, you will have injected new code that differentiates between allies and foes. The following is an example of a simple script you can use to differentiate between allies and foes:

     alloc(newmem,2048,"Tutorial-x86_64.exe"+2EB6D) 
    label(returnhere)
    label(originalcode)
    label(exit)
    label(player) //New label for the player.
    
    newmem: //This calls a new memory address. 
    cmp [rbx+14],1 //This differenciates between ally team members and enemy team
    je player //This jumps to the player section if object is on the player's team.
    jmp originalcode //This jumps to the original code if object is an enemy team.
    
    player: //This creates a new section for the Player's team
    jmp exit //This jumps to the exit and does nothing for the player's team.
    
    originalcode: //This is the original code section
    movss [rbx+08],xmm0 //This executes original insturctions (for the enemy team)
    
    exit: //This section ends this script.
    jmp returnhere
    
    "Tutorial-x86_64.exe"+2EB6D:
    jmp newmem
    returnhere:
    
  18. Advertisement

  1. Image titled 363032 1

    1

    Learn how Cheat Engine works. Cheat Engine can access pieces of data stored in your computer’s random access memory (RAM). When you run a piece of software, such as a game, information is transferred from a static storage location such a a hard drive, to your RAM. From there, the information can be read and written. Cheat Engine allows you to scan information stored in your RAM and change the information.

  2. Image titled 363032 2

    2

    Understand the terminology. Cheat Engine deals with a lot of high-level computer code. To make things easier to understand, it helps to understand some of the terminology involved. The following are some terms used in Cheat Engine:

    • Value: A value is anything in a computer program that has a numeric value attached to it. It games, it can be your health percentage, the number of ammo you have, or the quantity of an object you have. Cheat Engine allows you to scan for variables and make changes to them.
    • Address: An address is the location the information is stored within the RAM. Sometimes, the location of a value can change.
    • Data Type: A data type is how a value is stored. I can be in bytes (i.e. 2 Bytes, 4 Bytes, or 8 Bytes), it can also be a floating point, or a double.
    • Pointer: A pointer is an address that contains a value that was written to by another address. These addresses can change every time you load a game, or sometime in the middle of a game.
  3. Image titled 363032 3

    3

    Understand that Cheat Engine won’t work with many games. Any game which has some form of cheat protection or online multiplayer functionality won’t work with Cheat Engine, and attempting to use Cheat Engine will typically result in your account or profile being banned from online play.

    • If you are somehow able to use Cheat Engine to obtain resources which are usually purchased with real money, you may be prosecuted for theft.
    • Cheat Engine is a high-profile piece of software, so most games have some form of protection against it.
  4. Image titled 363032 4

    4

    Know which games may work with Cheat Engine. Older singleplayer games and some Steam singleplayer games should work with Cheat Engine, though the games in question must have some on-screen value that you can view and change.

    • Many online flash games which don’t have a community link (e.g., no multiplayer and no high score) are also compatible with Cheat Engine.
  5. Advertisement

Add New Question

  • Question

    Is there a speedhack function on Cheat Engine?

    Community Answer

    Yes, on the right side there’s a tickbox that reads ‘Enable Speedhack’. It allows you to easily speed up or slow down any singleplayer game.

  • Question

    How do I do it with money on Gta 5 single player?

    Community Answer

    Try changing 4 bytes to string or double.

  • Question

    I did this in Clash of Kings, and it changes the value in the game, but when I go to buy something, it goes back to what it was before it changed. What do I do?

    Community Answer

    It’s a multiplayer game, therefore it won’t let you change those values with cheat engine.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

  • Start with the interactive tutorial that comes with Cheat Engine. Try using these skills to get through all 9 steps.

  • Cheat Engine is useful for changing minor aspects of a game, though attempting to alter larger features may cause the game to break.

  • To use Cheat Engine effectively, it’s best if you have some knowledge of assembly code.

Thanks for submitting a tip for review!

Advertisement

  • If you use Cheat Engine on a VAC or other anti-cheat protected server, you will get banned.

  • On Roblox you can’t hack with the usual Cheat Engine, if you do you will get kicked off the game you’re trying to hack.

Advertisement

References

About This Article

Article SummaryX

1. Open Cheat Engine.
2. Start the game.
3. Determine the aspect number you want to change.
4. Minimize the game.
5. Click Processes and select the game’s process.
6. Find the aspect number and click First Scan.
7. Repeat until you have 4 or fewer values.
8. Add all remaining values to the address list.
9. Enter the value you want to use and click OK.

Did this summary help you?

Thanks to all authors for creating a page that has been read 1,453,428 times.

Is this article up to date?

  1. Изображение с названием Use Cheat Engine Step 1

    1

    Запомните, как работает Cheat Engine. Cheat Engine может получить доступ к данным, которые находятся в оперативной памяти компьютера — некоторые из этих данных относятся к игровым значениям. Например, если здоровье игрового персонажа выражено числом (к примеру, 100), число «100» является значением. С помощью Cheat Engine такие значения можно находить в оперативной памяти компьютера, а затем менять их.

    • Если изменить значение, можно, например, получить больше предметов, улучшить здоровье персонажа и так далее.
  2. Изображение с названием Use Cheat Engine Step 2

    2

    Имейте в виду, что Cheat Engine работает не со всеми играми. Если игра защищена от использования чит-кодов или является многопользовательской сетевой игрой, она не будет работать с Cheat Engine — если вы попытаетесь использовать Cheat Engine, ваш аккаунт или профиль для сетевой игры будет заблокирован.

    • Если с помощью Cheat Engine вы умудритесь получить предметы, которые в игре продаются за настоящие деньги, вас могут привлечь к ответственности за кражу.
    • Cheat Engine — это качественное программное обеспечение, поэтому у большинства игр есть какая-то защита от него.
  3. Изображение с названием Conduct Research Step 6

    3

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

    • Многие сетевые флеш-игры, в которых нет многопользовательского режима и рекордов, также совместимы с Cheat Engine.

    Реклама

  1. Изображение с названием Use Cheat Engine Step 4

    1

  2. Изображение с названием Use Cheat Engine Step 5

    2

    Нажмите Download Cheat Engine (Скачать Cheat Engine). Эта кнопка находится посередине страницы.

    • На этой кнопке также будет указана текущая версия Cheat Engine, например, «Download Cheat Engine 6.7» (Скачать Cheat Engine 6.7).
    • Чтобы скачать Cheat Engine для macOS, нажмите «Download Cheat Engine 6.2 For Mac» (Скачать Cheat Engine 6.2 для Mac).
  3. Изображение с названием Use Cheat Engine Step 6

    3

    Откажитесь от установки дополнительного программного обеспечения. Нажмите «Decline» (Отклонить) в окне, а затем снова нажмите «Отклонить», когда появится запрос. Начнется загрузка установочного файла Cheat Engine на компьютер.

    • Пропустите этот шаг на компьютере Mac — как только вы щелкните по кнопке для загрузки, запустится процесс скачивания DMG-файла.
  4. Изображение с названием Use Cheat Engine Step 7

    4

    Установите Cheat Engine. Процесс зависит от операционной системы компьютера:

    • Windows — дважды щелкните по установочному файлу Cheat Engine, нажмите «Да» в окне с запросом, щелкните по «Next» (Далее), установите флажок у «I agree» (Согласиться) и нажмите «Next» (Далее), трижды щелкните по «Next» (Далее), снимите флажок у «I agree to install McAfee WebAdvisor» (Согласиться на установку McAfee WebAdvisor), нажмите «Next» (Далее) и щелкните по «Install» (Установить). Когда процесс установки завершится, нажмите «Next» (Далее) и щелкните по «Finish» (Готово).
    • Mac — дважды щелкните по скачанному DMG-файлу, разрешите устанавливать программы сторонних разработчиков, перетащите значок Cheat Engine в папку «Программы» и следуйте инструкциям на экране.
  5. Изображение с названием Use Cheat Engine Step 8

    5

    Запустите Cheat Engine. Откройте меню «Пуск»

    Windows Start

    (Windows) или Launchpad (Mac), а затем нажмите «Cheat Engine».

    • Возможно, сначала вам придется нажать «Да» или «Открыть».

    Реклама

  1. Изображение с названием Use Cheat Engine Step 9

    1

    Запустите игру. Запустите игру, которую хотите использовать с Cheat Engine.

    • Помните, что это не должна быть многопользовательская сетевая или серверная игра.
  2. Изображение с названием Use Cheat Engine Step 10

    2

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

    • Число должно отображаться на экране. Например, чтобы изменить количество конкретного предмета в инвентаре, сначала откройте инвентарь, чтобы отобразить текущее количество этого предмета.
  3. Изображение с названием Use Cheat Engine Step 11

    3

    Сверните окно с игрой. Теперь откройте окно Cheat Engine.

    • Игру не останавливайте.
  4. Изображение с названием Use Cheat Engine Step 12

    4

    Нажмите на значок «Processes» (Процессы) в окне Cheat Engine. Он выглядит как компьютер и находится в верхнем левом углу. Откроется всплывающее окно со списком программ, которые запущены на компьютере.

  5. Изображение с названием Use Cheat Engine Step 13

    5

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

    • Если нужной игры в списке «Процессы» нет, использовать Cheat Engine с этой игрой нельзя.
    • Возможно, сначала вам придется нажать на вкладку «Процессы» в верхней части окна.
  6. Изображение с названием Use Cheat Engine Step 14

    6

    Щелкните по OK. Эта опция находится внизу окна. Игра откроется в Cheat Engine.

  7. Изображение с названием Use Cheat Engine Step 15

    7

    Найдите число, которое нужно изменить. Введите число, которым выражен нужный игровой элемент, в текстовое поле «Value» (Значение) в верхней части окна Cheat Engine, а затем нажмите «First Scan» (Первое сканирование).

    • Например, если нужный игровой элемент выражен числом «20», введите 20 в текстовом поле «Значение».
  8. Изображение с названием Use Cheat Engine Step 16

    8

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

    • То есть нужно сделать так, чтобы число, отображаемое на экране, изменилось (уменьшилось или увеличилось).
  9. Изображение с названием Use Cheat Engine Step 17

    9

    Сверните окно с игрой, а затем найдите новое число. Введите новое число в поле «Value» (Значение) и нажмите «Next Scan» (Следующее сканирование). Так вы уменьшите количество значений, которые отображаются на левой панели окна Cheat Engine.

  10. Изображение с названием Use Cheat Engine Step 18

    10

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

    • В конце концов, предыдущее искомое число отобразится в столбце «Previous» (Предыдущее), а текущее число — в столбце «Value» (Значение).
  11. Изображение с названием Use Cheat Engine Step 19

    11

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

  12. Изображение с названием Use Cheat Engine Step 20

    12

    Добавьте значения в список адресов. Нажмите на красную диагональную стрелку в правом нижнем углу списка значений. При этом значения переместятся в список адресов в нижней части окна.

  13. Изображение с названием Use Cheat Engine Step 21

    13

    Выберите все значения. Щелкните по одному значению в нижней части окна, а затем нажмите Ctrl+A (Windows) или Command+A (Mac).

  14. Изображение с названием Use Cheat Engine Step 22

    14

    Нажмите Enter. Появится всплывающее окно с текстовым полем.

    • Возможно, вам придется дважды щелкнуть по значению, чтобы открыть это поле.
  15. Изображение с названием Use Cheat Engine Step 23

    15

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

    • Например, чтобы получить 1000 предметов, введите 1000.
  16. Изображение с названием Use Cheat Engine Step 24

    16

    Щелкните по OK. Эта опция находится внизу окна. Все текущие значения будут обновлены.

  17. Изображение с названием Use Cheat Engine Step 25

    17

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

    • Возможно, вам придется изменить число еще раз, прежде чем оно отобразится в игре.

    Реклама

Советы

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

Реклама

Предупреждения

  • Если вы используете Cheat Engine на VAC или другом защищенном от мошенничества сервере, ваш аккаунт будет заблокирован.
  • Roblox нельзя взломать с помощью Cheat Engine — если вы сделаете это, ваш аккаунт будет заблокирован.

Реклама

Об этой статье

Эту страницу просматривали 99 117 раз.

Была ли эта статья полезной?

So let’s go through the Cheat Engine Tutorial (x64).

So open Cheat Engine, then in the main menu select help then select Cheat Engine Tutorial.

Tutorials.CETutorialx64.01.png

Then attach to the Cheat Engine Tutorial process, it should be ‘Tutorial-x86_64.exe’.

If unsure how to attach to the process see: How to attach to a process

Contents

  • 1 Step 1: Welcome
  • 2 Step 2: Exact Value scanning
  • 3 Step 3: Unknown initial value
  • 4 Step 4: Floating points
  • 5 Step 5: Code finder
  • 6 Step 6: Pointers
  • 7 Step 7: Code Injection
  • 8 Step 8: Multilevel pointers
    • 8.1 Manual Iteration
    • 8.2 Pointer Scan
    • 8.3 Finally
  • 9 Step 9: Shared code
    • 9.1 Find the team id in the player structure
    • 9.2 Find a difference in the registers
  • 10 See also

Step 1: Welcome[edit]

When the tutorial launches you should see some thing like this, you can just click the next button after reading the help text.

Save the password in later steps in case of crashes (from injections) and for restarting at a later time.

Tutorials.CETutorialx32.02.png

Step 2: Exact Value scanning[edit]

So for step 2 you will see some thing like this.

Tutorials.CETutorialx32.step01.01.png

What we need to find is the health, and here it’s an integer.

So setup the memory scanner to find an integer and for exact value scan then set the value to the current health value, most integers will be stored in a 4 byte variable, so let’s start there.

Note: Integers can be stored in a 1 byte variable (byte), 2 byte variable (int16/short), 4 byte variable (int32/int), or 8 byte variable (int64/long).

When ready click the first scan button.

Tutorials.CETutorialx64.step02.01.png

You Should see a list of addresses, in the found address list, like this.

Tutorials.CETutorialx64.step02.03.png

Now Click the hit me button, then reenter the current value and click the next scan button.

Note the red value in the list, this shows that the value has changed.

Tutorials.CETutorialx64.step02.04.png

After clicking next scan you may need to keep clicking hit me and rescanning tell the found address list is small enough to work with.

Tutorials.CETutorialx64.step02.05.png

Just double click the address in the found list to add it to the cheat table.
Then change the value and freeze the address, double click the value in the address list to edit it, freeze it by clicking the enabler/freeze box.

Tutorials.CETutorialx64.step02.06.png

Now the next button should be enabled, click it to go to the next step.
Click the hit me button again if the next button is not enabled already.

Step 3: Unknown initial value[edit]

When you start step 3 you should see the form looking like this.

Tutorials.CETutorialx32.step03.01.png

Like the help text said make sure to click the new scan button before starting new scans.

Tutorials.CETutorialx64.step03.02.png

This clears the found results to start scanning for a new value.

Here is where I suggest going ahead and clicking the hit me button, just to see how the value is decreased to help in determining what value type to scan for.

Tutorials.CETutorialx32.step03.03.png

Note that the value was decreased by an integer, that is a non fractional number.

So I would setup the scanner for 4 bytes and unknown initial value.
Then click the first scan button.

Tutorials.CETutorialx64.step03.04.png

Now click the hit me button.

Then set the scan type to decreased value and click the nest scan button.

Tutorials.CETutorialx64.step03.05.png

Note the number of found addresses, this is kinda small for most games these days, the found results can easily be in the millions for most games.

Now just keep decreasing the value with the hit me button, and scanning for a decreased value, until the found results is small enough to work with.

Tutorials.CETutorialx64.step03.06.png

Now we just pick an address and change the value to see if it has the desired effect, this is just how it works.

Here is where I suggest that you always note the values (or just Ctrl+C) before changing them to set them back if they are not the right value, to keep from changing a bunch of unknown addresses and corrupting your save files when doing this in games.

The next button should become enabled as soon as you set the value to 5000.
After changing the value and clicking the hit me button the progress bar should fill, but this is not needed.

Tutorials.CETutorialx64.step03.07.png

Now the next button should be enabled, click it to go to the next step.
Click the hit me button again if the next button is not enabled already.

Step 4: Floating points[edit]

When you start step 4 you should see the form looking like this.

Tutorials.CETutorialx32.step04.01.png

So click the new scan button.
Then setup the scanner for a float, exact value, enter the current health value.

When setup click the first scan button.

Tutorials.CETutorialx64.step04.02.png

So just scan like before to find the health address, then add it to the address list.

Now click the new scan button again.
Then setup the scanner for a double, exact value, enter the current ammo value.

When setup click the first scan button.

Tutorials.CETutorialx64.step04.03.png

So just scan like before to find the ammo address, then add it to the address list.

Now change the values to 5000, then the next button should become enabled.
Then click the next button to progress to the next step.

Step 5: Code finder[edit]

When you start step 5 you should see the form looking like this.

Tutorials.CETutorialx32.step05.01.png

So first find the value then add it to the address list.

Go ahead and save the table and the password at this point, just in case the debugger isn’t setup right.

If you need help setting up the debugger see: Debugger options

After you have the address in the address list right click it then select find out what accesses this address.

Tutorials.CETutorialx32.step05.02.png

Cheat Engine will prompt you about attaching the debugger, just click the yes button.

Tutorials.CETutorialx32.step05.03.png

Then a debugger form will open, now click the change value button, and you should get code that shows up in the debugger form.

What we want is a write instruction. So we will be looking for some thing like one of the following:

mov [**],**
add [**],**
sub [**],**
*** [**],**

Select the code line of the write instruction, you can click the show disassembler button to see the code in memory, then click the replace button.

Don’t forget to click the stop button.

Tutorials.CETutorialx64.step05.04.png

The replace button will replace that line of code with NOPs.

Cheat Engine will prompt you for a name for the entry it will add in the advanced options list.

Enter a name and click the OK button.

Tutorials.CETutorialx64.step05.05.png

Now click the change value button back on the tutorial.

The next button should become enabled, then click the next button to advance to the next step.

When entries in the advanced options list are replaced, they will show up with red text.

Tutorials.CETutorialx64.step05.06.png

The advanced options list can be viewed by clicking the advanced options button in the status bar on the bottom left corner of the Cheat Engine main form.

To restore the original code for an entry in the list, right click the entry and select restore with original code.

Tutorials.CETutorialx64.step05.07.png

Note that the text is black after restoring.

Tutorials.CETutorialx64.step05.08.png

Step 6: Pointers[edit]

When you start step 6 you should see the form looking like this.

Tutorials.CETutorialx32.step06.01.png

So first find the value then add it to the address list.

After you have the address in the address list right click it then select find out what accesses this address.

Tutorials.CETutorialx64.step06.05.png

Then click the change value button, to have the process access the address.

When choosing the code to find the base address for the pointer, try to select an instruction that doesn’t write to the same register as the base address.

Here we’re interested in the value between the square brackets (‘[‘ and ‘]’), so here we want the value of RDX.

Tutorials.CETutorialx64.step06.02.png

The offset here is 0, if the instruction had some thing like this:

mov [rdx+12C],eax

Then the offset would be ’12C’ (0x12C), note that this is in hex.

Now set the scanner for 8 bytes, exact value, check the hex check box, then take the value found and put that as the value to scan for.

When ready click the first scan button.

Look in the found address list for address with green text, these are static addresses.

Tutorials.CETutorialx64.step06.03.png

Add one to the cheat table, double click the address of the memory record that was added to the address list, copy the address then check the pointer check box, and paste the address in the pointers base address.

If you are unsure how to do this look here: How to add addresses to the address list

So my pointer will look like this.

["Tutorial-x86_64.exe"+XXXXXX]+0

It should be setup some thing like this, remember to set the offset to the offset you found.

Tutorials.CETutorialx64.step06.04.png

Click the OK button when the pointer is setup.

Now freeze the value at 5000 and click the change pointer button, the next button should become enabled.

If the next button doesn’t become enabled then select another address from the found list, look for a green one that had it’s value changed, and set it up like the last one and see if it points to the right value, if so change the value freeze and click the change pointer button.

Click the next button to advance to the next step.

Step 7: Code Injection[edit]

When you start step 7 you should see the form looking like this.

Tutorials.CETutorialx32.step07.01.png

Here we’ll follow the the same procedures as step 5, but instead of clicking replace click the show disassembler button.

Tutorials.CETutorialx64.step07.02.png

This will open the disassembler view form at the instruction’s address.

Tutorials.CETutorialx64.step07.03.png

With the instruction selected press Crtl+A, to open an auto assembler form.

In the auto assembler form menu select template then select full injection.

Tutorials.CETutorialx32.step07.04.png

This will generate some script to start you out.

Tutorials.CETutorialx64.step07.05.png

Now we need to add some code that will increase the value by 2, then remove the original code that decreases the value.

For increasing the value we can use INC or ADD.

So let’s try some thing like this.


newmem:
add dword ptr [rsi+780],2

code:

//sub dword ptr [rsi+00000780],01
jmp return

address:

jmp newmem
nop
nop
return:

Now add the script to the cheat table.

If you are unsure how to do that look here: How to add script to table

Then enable the script and click the hit me button.

This should enable the next button, so click the next button to go to the next step.

Step 8: Multilevel pointers[edit]

When you start step 8 you should see the form looking like this.

Tutorials.CETutorialx32.step08.01.png

Manual Iteration[edit]

So here we will follow the same steps as step 6, except we’ll see what accesses the base address we find, and we’ll keep repeating this until a static base is found.

So here is my first debugger output.

10002D8D1 - B9 A00F0000 - mov ecx,00000FA0
10002D8D6 - E8 3522FEFF - call Tutorial-x86_64.exe+XXXXXX
10002D8DB - 89 46 18  - mov [rsi+18],eax  <<<<<<
10002D8DE - 89 C2  - mov edx,eax
10002D8E0 - 48 8D 4D F8  - lea rcx,[rbp-08]

RAX=00000000000007F7
RBX=000000000125CD60
RCX=0000000000000FA0
RDX=00000000828087F3
RSI=0000000001287960  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D8DE
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

I did find a static base on the first scan of the base address but I remember this being a false base.
So here what we want is a base address in the form of ‘process.exe+offset’, you can try one of the others that look like ‘module.dll+offset’ but I want to say that here they will prove to be false pointers. And yes most newer games will have many false values and pointers.

And the debugger output from the address holding: 0000000001287960

10002D88B - E8 90961200 - call Tutorial-x86_64.exe+XXXXXX
10002D890 - E9 65000000 - jmp Tutorial-x86_64.exe+XXXXXX
10002D895 - 48 83 3E 00 - cmp qword ptr [rsi],00  <<<<<<
10002D899 - 74 5F - je Tutorial-x86_64.exe+XXXXXX
10002D89B - 48 8B 36  - mov rsi,[rsi]

RAX=0000000000013117
RBX=000000000125CD60
RCX=000000000125CD60
RDX=0000000000003CE3
RSI=0000000002D6D540  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D899
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

And the debugger output from the address holding: 0000000002D6D540

10002D845 - E8 D6961200 - call Tutorial-x86_64.exe+XXXXXX
10002D84A - E9 AB000000 - jmp Tutorial-x86_64.exe+XXXXXX
10002D84F - 48 83 7E 18 00 - cmp qword ptr [rsi+18],00  <<<<<<
10002D854 - 0F84 A0000000 - je Tutorial-x86_64.exe+XXXXXX
10002D85A - 48 8B 76 18  - mov rsi,[rsi+18]

RAX=00000000000166D2
RBX=000000000125CD60
RCX=000000000125CD60
RDX=000000000000302E
RSI=0000000002D6CE40  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D854
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

And the debugger output from the address holding: 0000000002D6CE40

10002D800 - E8 1B971200 - call Tutorial-x86_64.exe+XXXXXX
10002D805 - E9 F0000000 - jmp Tutorial-x86_64.exe+XXXXXX
10002D80A - 48 83 7E 10 00 - cmp qword ptr [rsi+10],00  <<<<<<
10002D80F - 0F84 E5000000 - je Tutorial-x86_64.exe+XXXXXX
10002D815 - 48 8B 76 10  - mov rsi,[rsi+10]

RAX=000000000000B567
RBX=000000000125CD60
RCX=000000000125CD60
RDX=00000000000050A1
RSI=000000000123F1C0  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D80F
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

Now we scan for that base ‘000000000123F1C0’ and you should find a static address, but in real games you would keep going until a static base is found.

With that static address as the base my pointer will look like this.

[[[["Tutorial-x86_64.exe"+XXXXXX]+10]+18]+0]+18

Tutorials.CETutorialx64.step08.02.png

Pointer Scan[edit]

The pointer scan can be used to solve this quickly by first finding the address of the desired value, saving a generated pointer map, restarting the game, searching for the address again, saving another pointer map, and then comparing the two. More information can be found in Help_File:Pointer_scan.

Finally[edit]

After you have found the pointer, freeze it at 5000, then click the change pointer button.
If you found the right base the next button should become enabled after about 2 seconds.
So click the next button to go to the next step.

Step 9: Shared code[edit]

When you start step 9 you should see the form looking like this.

Tutorials.CETutorialx32.step09.01.png

So here like the help text says there is far more than one solution.

First we need to find one of the addresses and add it to the table.

If you are having trouble finding an address, remember to try different value types, and don’t forget to start new scans.

Then like in step 7 we want to see what accesses the address, to find the function that writes to the actor’s health.

Go ahead and save the password if you want to try different ways, this is the last step in the tutorial.

So here it’s good to understand what we’re actually looking for to tell allies and combatants apart.

When the game or engine is written, actors and players might be written like this.

//// Actor, base for all actors
class Actor(object){
string Name = ‘Actor’;
Coord Coords = new Coord(0, 0, 0);
float Health = 100.0;

}
//// Player
class Player(Actor){ //// Player inherits form Actor
string Name = ‘Player’;
int Team = 1;

}

The team it self could be a structure, say if it’s declared as an object class like the ‘Coords’ variable, which we would want to look for a pointer to the actor’s team structure.

So one way we could do this is to find the team id or team structure in the player structure.

Find the team id in the player structure[edit]

After you have found the function that decreases health.

Right click the instruction in the disassembler view form, and select find out what addresses this instruction accesses.

Tutorials.CETutorialx64.step09.02.png

Then click the attack button for all 4 values.

You should have all 4 addresses in the debugger list.

Tutorials.CETutorialx64.step09.03.png

So go ahead and add them to the address list.

Tutorials.CETutorialx64.step09.04.png

Then let’s open the dissect data structure form.

Tutorials.CETutorialx64.step09.05.png

You’ll get some pop ups, after going thought them you should see a form like this.
Note that I had to expand the width of the form to be able to move the columns.

Now on mine offset 0x10 was guessed as a pointer which is 8 bytes wide in a 64 bit process. I saw that the pointers at 0x10 had values that really didn’t look like pointers.

So I had to switch it to 4 byte, and add a new element set it’s offset to 0x14 with 4 byte value type. This is often the way it works.

Tutorials.CETutorialx64.step09.06.png

So here we can see that the team variable is at offset 0x14 of the structure.

Now we need to add some injection code to a script, then add some code that checks the team variable of the structure, to determine which actors are allies and which are combatants.

So we want some this like this.

Tutorials.CETutorialx64.step09.07.png

So with this script enabled,
when the game writes to an actors health here is what will happen after the jump to the hook code:

  1. Save (PUSH) the RFLAGS register, not completely needed but still a good habit when comparing.
  2. Check if actor is on team 1.
    1. If actor is on team 1, then we set the new value to 5000 in a floating point format.
  3. Check if actor is on team 2.
    1. If actor is on team 2, then we set the new value to 0 in hex format. (float 0 == int 0 == hex 0)
  4. Restore (POP) the RFLAGS register, this is completely needed if the register was PUSHed.

With this script enabled, click the restart game and autoplay button, then you should see the form change and look like this.

Tutorials.CETutorialx32.step09.08.png

So click the next button to complete the tutorial.

Then you should see a form telling you that you have completed the tutorial.

Find a difference in the registers[edit]

After you have found the function that decreases health.

Right click the instruction in the disassembler view form, and select find out what addresses this instruction accesses.

Tutorials.CETutorialx64.step09.02.png

Then click the attack button for all 4 values.

You should have all 4 addresses in the debugger list.

Tutorials.CETutorialx64.step09.03.png

Now let’s look at the registers to see if we can find a difference in the allies and combatants.

Select each address individually and press Ctrl+R.

Arrange the forms to make it easier to compare.

Tutorials.CETutorialx64.step09.b.01.png

So here we can see that RSI is 1 for the combatants.

So a script like this should work.

Tutorials.CETutorialx64.step09.b.02.png

So with this script enabled,
when the game writes to an actors health here is what will happen after the jump to the hook code:

  1. Save (PUSH) the RFLAGS register, not completely needed but still a good habit when comparing.
  2. Check if RSI register is 1.
    1. If RSI register is 1, then we set the new value to 0 in hex format. (float 0 == int 0 == hex 0)
    2. If RSI register is not 1, then we assume the actor is an ally so we set the new value to 5000 in a floating point format.
  3. Restore (POP) the RFLAGS register, this is completely needed if the register was PUSHed.

With this script enabled, click the restart game and autoplay button, then you should see the form change and look like this.

Tutorials.CETutorialx32.step09.08.png

So click the next button to complete the tutorial.

Then you should see a form telling you that you have completed the tutorial.

See also[edit]

  • Tutorials
  • Syntax Highlighter

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



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

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

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

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

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

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

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

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

Как пользоваться Чит Энджин

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

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

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

Как использовать программу Чит Энджин

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

Как работать в Cheat Engine

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

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

Как работать в Чит Энджин

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

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Фентанил инструкция по применению официальная инструкция
  • Кофемашина dexp инструкция по применению на русском
  • Купить актовегин в таблетках инструкция по применению
  • Digital readouts 2v 3v multifunction инструкция на русском
  • Реле напряжения digitop vp 3f40a инструкция