Cheat Engine Tutorial (v3.4) - Step 7


PW=013370
    Một trong những thứ hay ho mà Cheat Engine mang tới đó là Code Injection, ở đây bạn có thể sửa lại câu lệnh hoặc cả đoạn mã bằng assembly, nhưng để nó đạt được sức mạnh thực sự thì bạn phải biết về assembly cơ, nếu chưa biết có thể tìm hiểu qua về nó thông qua hướng dẫn này, đây chỉ là một hướng dẫn cơ bản nhưng biết đâu lại tạo thêm động lực cho bạn :v

Step 7: Code Injection: (PW=013370)
Code injection is a technique where you inject a piece of code into the target process, and then reroute the execution of code to go through your own written code.

In this tutorial you'll have a health value and a button that will decrease your health by 1 each time you click it.
Your task is to use code injection to make the button increase your health by 2 each time it is clicked

Start with finding the address and then find what writes to it.
then when you've found the code that decreases it browse to that address in the disassembler, and open the auto assembler window (ctrl+a)
There click on template and then code injection, and give it the address that decreases health (If it isn't already filled in correctly)
That will generate a basic auto assembler injection framework you can use for your code.

Notice the alloc, that will allocate a block of memory for your code cave, in the past, in the pre windows 2000 systems, people had to find code caves in the memory(regions of memory unused by the game), but that's luckily a thing of the past since windows 2000, and will these days cause errors when trying to be used, due to SP2 of XP and the NX bit of new CPU's

Also notice the line newmem: and originalcode: and the text "Place your code here"
As you guessed it, write your code here that will increase the  health with 2.
An usefull assembler instruction in this case is the "ADD instruction"
here are a few examples:
"ADD [00901234],9" to increase the address at 00901234 with 9
"ADD [ESP+4],9" to increase the address pointed to by ESP+4 with 9
In this case, you'll have to use the same thing between the brackets as the original code has that decreases your health

Notice:
It is recommended to delete the line that decreases your health from the original code section, else you'll have to increase your health with 3 (you increase with 3, the original code decreases with 1, so the end result is increase with 2), which might become confusing. But it's all up to you and your programming.

Notice 2:
In some games the original code can exist out of multiple instructions, and sometimes, not always, it might happen that a code at another place jumps into your jump instruction end will then cause unknown behavior. If that happens, you should usually look near that instruction and see the jumps and fix it, or perhaps even choose to use a different address to do the code injection from. As long as you're able to figure out the address to change from inside your injected code.
    Bản dịch tiếng Việt:

Bước 7: Code Injection: (PW = 013370)
Code Injection là một kỹ thuật trong đó bạn chèn một đoạn mã vào đối tượng và sau đó chuyển hướng lại việc thực thi mã để đi qua mã viết của riêng bạn.

Trong hướng dẫn này, bạn sẽ có một giá trị Health và một nút sẽ làm giảm 1 lần mỗi lần bạn nhấp vào nó.
Nhiệm vụ của bạn là sử dụng Code Injection để làm cho nút tăng Health thêm 2 lần mỗi lần nhấp vào nút

Bắt đầu với việc tìm địa chỉ và sau đó tìm những gì ghi vào đó.
sau đó khi bạn tìm thấy mã giảm Health, nó duyệt đến địa chỉ đó trong trình dịch ngược và mở cửa sổ Auto assemble (ctrl + a)
Bấm vào Template và sau đó Code Injection, và cung cấp cho nó địa chỉ làm giảm Health (Nếu nó chưa được điền chính xác)
Điều đó sẽ tạo ra một khung Auto assemle mà bạn có thể sử dụng cho mã của mình.

Lưu ý về alloc, sẽ phân bổ một khối bộ nhớ cho mã của bạn, trước đây, trong các hệ thống windows 2000 trở về trước, mọi người phải tìm các mã trong bộ nhớ (vùng nhớ của trò chơi không được sử dụng).

Cũng lưu ý dòng newmem: và originalcode: và dòng chữ "Place your code here"
Như bạn đoán, viết mã của bạn ở đây sẽ tăng sức khỏe với 2.
Một lệnh trình biên dịch hợp ngữ hữu ích trong trường hợp này là "lệnh ADD"
Đây là vài ví dụ:
"ADD [00901234], 9" để tăng địa chỉ tại 00901234 với 9
"ADD [ESP + 4], 9" để tăng địa chỉ được chỉ ra bởi ESP + 4 với 9
Trong trường hợp này, bạn sẽ phải sử dụng cùng một thứ giữa các dấu ngoặc như mã gốc làm giảm sức khỏe của bạn

Để ý:
Bạn nên xóa dòng làm giảm sức khỏe của bạn khỏi phần mã gốc, nếu không, bạn sẽ phải tăng sức khỏe của mình lên 3 (bạn tăng lên 3, mã gốc giảm đi 1, vì vậy kết quả cuối cùng là tăng với 2) , mà có thể trở nên khó hiểu. Nhưng tất cả tùy thuộc vào bạn và chương trình của bạn.

Lưu ý 2:
Trong một số trò chơi, mã gốc có thể tồn tại trong nhiều hướng dẫn và đôi khi, không phải lúc nào cũng có thể xảy ra việc mã ở một nơi khác nhảy vào đầu lệnh nhảy của bạn sau đó sẽ gây ra hành vi không xác định. Nếu điều đó xảy ra, bạn thường nên nhìn gần hướng dẫn đó và xem các bước nhảy và sửa nó, hoặc thậm chí có thể chọn sử dụng một địa chỉ khác để thực hiện việc tiêm mã. Miễn là bạn có thể tìm ra địa chỉ để thay đổi từ bên trong mã được tiêm của mình.
    Chắc chả cần đọc hết đâu vì mình dịch xong đọc cũng chả hiểu, bắt đầu thực hành luôn thôi. Sau khi tìm được địa chỉ xong thì chọn Find out what writes to this address. Không chụp lại nữa vì mấy phần trước mình  làm suốt rồi. Chọn Show Disassembler và hiện như sau
   
    

    Tại chỗ đó chọn Tools -> Auto Assemble. Hiện lên cửa sổ mới chọn Template -> Code Injection
    Sửa code lại thành như sau.
    
    

    Sau đó ấn Execute và quay lại tutorial ấn Hit me, nếu làm đúng thì nút Next sẽ hiện lên.



Đăng nhận xét

0 Nhận xét