Thứ Hai, Tháng Chín 26, 2022
- Quảng cáo -
HomePOSTHow to Use Cheat Engine (with Pictures) - wikiHow

How to Use Cheat Engine (with Pictures) – wikiHow

  1. Image titled 363032 59
    Image titled 363032 59

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/6\/68\/363032-59.jpg\/v4-460px-363032-59.jpg”,”bigUrl”:”\/images\/thumb\/6\/68\/363032-59.jpg\/aid363032-v4-728px-363032-59.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

    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.

  2. Image titled 363032 60
    Image titled 363032 60

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/a\/a7\/363032-60.jpg\/v4-460px-363032-60.jpg”,”bigUrl”:”\/images\/thumb\/a\/a7\/363032-60.jpg\/aid363032-v4-728px-363032-60.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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 62
    Image titled 363032 62

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/c\/c0\/363032-62.jpg\/v4-460px-363032-62.jpg”,”bigUrl”:”\/images\/thumb\/c\/c0\/363032-62.jpg\/aid363032-v4-728px-363032-62.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  4. Image titled 363032 63
    Image titled 363032 63

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/e\/e4\/363032-63.jpg\/v4-460px-363032-63.jpg”,”bigUrl”:”\/images\/thumb\/e\/e4\/363032-63.jpg\/aid363032-v4-728px-363032-63.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  5. Image titled 363032 64
    Image titled 363032 64

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/f\/fb\/363032-64.jpg\/v4-460px-363032-64.jpg”,”bigUrl”:”\/images\/thumb\/f\/fb\/363032-64.jpg\/aid363032-v4-728px-363032-64.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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]

    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.

  6. Image titled 363032 65
    Image titled 363032 65

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/5\/56\/363032-65.jpg\/v4-460px-363032-65.jpg”,”bigUrl”:”\/images\/thumb\/5\/56\/363032-65.jpg\/aid363032-v4-728px-363032-65.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

    Use the following steps to disect the data structure for the list of addresses:

  7. Image titled 363032 66
    Image titled 363032 66

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/d\/d2\/363032-66.jpg\/v4-460px-363032-66.jpg”,”bigUrl”:”\/images\/thumb\/d\/d2\/363032-66.jpg\/aid363032-v4-728px-363032-66.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

    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.

  8. Image titled 363032 67
    Image titled 363032 67

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/4\/44\/363032-67.jpg\/v4-460px-363032-67.jpg”,”bigUrl”:”\/images\/thumb\/4\/44\/363032-67.jpg\/aid363032-v4-728px-363032-67.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  9. Image titled 363032 68
    Image titled 363032 68

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/9\/96\/363032-68.jpg\/v4-460px-363032-68.jpg”,”bigUrl”:”\/images\/thumb\/9\/96\/363032-68.jpg\/aid363032-v4-728px-363032-68.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

    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:

  10. Image titled 363032 69
    Image titled 363032 69

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/a\/aa\/363032-69.jpg\/v4-460px-363032-69.jpg”,”bigUrl”:”\/images\/thumb\/a\/aa\/363032-69.jpg\/aid363032-v4-728px-363032-69.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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)”.

  11. Image titled 363032 70
    Image titled 363032 70

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/d\/d8\/363032-70.jpg\/v4-460px-363032-70.jpg”,”bigUrl”:”\/images\/thumb\/d\/d8\/363032-70.jpg\/aid363032-v4-728px-363032-70.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  12. Image titled 363032 71
    Image titled 363032 71

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/a\/a3\/363032-71.jpg\/v4-460px-363032-71.jpg”,”bigUrl”:”\/images\/thumb\/a\/a3\/363032-71.jpg\/aid363032-v4-728px-363032-71.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  13. Image titled 363032 72
    Image titled 363032 72

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/0\/0a\/363032-72.jpg\/v4-460px-363032-72.jpg”,”bigUrl”:”\/images\/thumb\/0\/0a\/363032-72.jpg\/aid363032-v4-728px-363032-72.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  14. Image titled 363032 73
    Image titled 363032 73

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/c\/c7\/363032-73.jpg\/v4-460px-363032-73.jpg”,”bigUrl”:”\/images\/thumb\/c\/c7\/363032-73.jpg\/aid363032-v4-728px-363032-73.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

  15. Image titled 363032 74
    Image titled 363032 74

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/e\/e6\/363032-74.jpg\/v4-460px-363032-74.jpg”,”bigUrl”:”\/images\/thumb\/e\/e6\/363032-74.jpg\/aid363032-v4-728px-363032-74.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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.

    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).

  16. Image titled 363032 75
    Image titled 363032 75

    {“smallUrl”:”https:\/\/www.wikihow.com\/images\/thumb\/a\/af\/363032-75.jpg\/v4-460px-363032-75.jpg”,”bigUrl”:”\/images\/thumb\/a\/af\/363032-75.jpg\/aid363032-v4-728px-363032-75.jpg”,”smallWidth”:460,”smallHeight”:345,”bigWidth”:728,”bigHeight”:546,”licensing”:”<div class=\”mw-parser-output\”><p>Image by: Uploader<br>\nLicense: <a target=\”_blank\” rel=\”nofollow noreferrer noopener\” class=\”external text\” href=\”https:\/\/creativecommons.org\/licenses\/by\/3.0\/\”>Creative Commons<\/a>\n<\/p><\/div>”}

    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

    "+

    2

    EB6D

    )

    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

    "+

    2

    EB6D

    :

    jmp

    newmem

    returnhere:

    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:

  17. Advertisement

Đánh giá post
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments