Cheat Engine Tutorial (v3.4) - Step 6


PW=098712
    Nếu học C/C++ có thể bạn bị ám ảnh bởi sự trừu tượng của con trỏ thì đến phần này bạn sẽ gặp lại nó rồi đó. Hehe, không đáng sợ gì đâu, khá là dễ hiểu thôi, biết đâu lại còn làm cho bạn thông suốt được cái đống con trỏ này đó 👉👌, bắt đầu thôi.

Step 6: Pointers: (PW=098712)
In the previous step I explained how to use the Code finder to handle changing locations. But that method alone makes it difficult to find the address to set the values you want.
That's why there are pointers:

At the bottom you'll find 2 buttons. One will change the value, and the other changes the value AND the location of the value.
For this step you don't really need to know assembler, but it helps a lot if you do.

First find the address of the value. When you've found it use the function to find out what accesses this address.
Change the value again, and a item will show in the list. Double click that item. (or select and click on more info) and a new window will open with detailed information on what happened when the instruction ran.
If the assembler instruction doesn't have anything between a '[' and ']' then use another item in the list.
If it does it will say what it think will be the value of the pointer you need.
Go back to the main cheat engine window (you can keep this extra info window open if you want, but if you close it, remember what is between the [ and ] ) and do a 4 byte scan in hexadecimal for the value the extra info told you.
When done scanning it may return 1 or a few hundred addresses. Most of the time the address you need will be the smallest one. Now click on manually add and select the pointer checkbox.

The window will change and allow you to type in the address of a pointer and a offset.
Fill in as address the address you just found.
If the assembler instruction has a calculation (e.g: [esi+12]) at the end then type the value in that's at the end. else leave it 0. If it was a more complicated instruction look at the calculation.

example of a more complicated instruction:
[EAX*2+EDX+00000310] eax=4C and edx=00801234.
In this case EDX would be the value the pointer has, and EAX*2+00000310 the offset, so the offset you'd fill in would be 2*4C+00000310=3A8.  (this is all in hex, use calc.exe from windows in scientific mode to calculate)

Back to the tutorial, click OK and the address will be added, If all went right the address will show P->xxxxxxx, with xxxxxxx being the address of the value you found. If thats not right, you've done something wrong.
Now, change the value using the pointer you added in 5000 and freeze it. Then click Change pointer, and if all went
right the next button will become visible.


extra:
And you could also use the pointer scanner to find the pointer to this address
    Bản dịch tiếng Việt:

Bước 6: Con trỏ: (PW = 098712)
Trong phần trước tôi đã giải thích cách sử dụng công cụ Code finder để xử lý các vị trí thay đổi. Nhưng phương pháp đó lại gây khó khăn cho việc tìm địa chỉ để đặt các giá trị bạn muốn.
Đó là lý do tại sao có con trỏ:

Ở phía dưới, bạn sẽ tìm thấy 2 nút. Một cái sẽ thay đổi giá trị, và cái kia thay đổi giá trị VÀ vị trí của giá trị.
Đối với bước này, bạn không thực sự cần phải biết assembler, nhưng nó sẽ giúp ích rất nhiều nếu bạn biết.

Đầu tiên tìm địa chỉ của giá trị. Khi bạn tìm thấy nó sử dụng chức năng 'Find out what accesses this address'.
Thay đổi giá trị một lần nữa và một mục sẽ hiển thị trong danh sách. Nhấp đúp chuột vào mục đó. (hoặc chọn và nhấp vào 'More information') và một cửa sổ mới sẽ mở ra với thông tin chi tiết về những gì đã xảy ra khi các lệnh chạy.
Nếu hướng dẫn trình biên dịch không có bất cứ điều gì giữa dấu '[' và ']' thì hãy sử dụng một mục khác trong danh sách.
Nếu đúng, nó sẽ nói những gì nó nghĩ sẽ là giá trị của con trỏ bạn cần.
Quay trở lại cửa sổ chính của Cheat Engine (bạn có thể mở cửa sổ thông tin bổ sung này nếu bạn muốn, nhưng nếu bạn đóng nó, hãy nhớ những gì nằm giữa [và]) và thực hiện quét 4 byte theo hệ thập lục phân để tìm giá trị trong bảng Extra info nói với bạn
Khi quét xong nó có thể trả về 1 hoặc vài trăm địa chỉ. Hầu hết thời gian địa chỉ bạn cần sẽ là địa chỉ nhỏ nhất. Bây giờ bấm vào thủ công thêm và chọn hộp kiểm con trỏ.

Cửa sổ sẽ thay đổi và cho phép bạn nhập địa chỉ của một con trỏ và offset.
Điền vào như địa chỉ địa chỉ bạn vừa tìm thấy.
Nếu lệnh assembler có một phép tính (ví dụ: [esi + 12]) ở cuối, sau đó nhập giá trị vào đó ở cuối. còn không thì điền 0. Nếu đó là một hướng dẫn phức tạp hơn, hãy nhìn vào phép tính.

ví dụ về một hướng dẫn phức tạp hơn:
[EAX * 2 + EDX + 00000 310] eax = 4C và edx = 00801234.
Trong trường hợp này, EDX sẽ là giá trị mà con trỏ có và EAX * 2 + 00000 310 offset, do đó offset bạn điền vào sẽ là 2 * 4C + 00000 310 = 3A8. (đây là tất cả trong hex, sử dụng calc.exe  ở chế độ Scientific để tính toán)

Quay lại tutorial, nhấp OK và địa chỉ sẽ được thêm vào, Nếu tất cả đã đúng, địa chỉ sẽ hiển thị P-> xxxxxxx, với xxxxxxx là địa chỉ của giá trị bạn tìm thấy. Nếu điều đó không đúng, bạn đã làm sai điều gì đó.
Bây giờ, thay đổi giá trị bằng cách sử dụng con trỏ bạn đã thêm vào 5000 và đóng băng nó. Sau đó bấm Change pointer và nếu tất cả đã đúng, nút Next sẽ hiển thị.


Thêm:
Và bạn cũng có thể sử dụng trình quét con trỏ để tìm con trỏ đến địa chỉ này.
    Thật sự là đọc cái này khá là hại mắt và hại não, mình chỉ cố gắng dịch lại thôi chứ mình chả khuyên ai làm đúng như thế cả, vì sau đây mình sẽ dùng công cụ tìm kiếm pointer tự động chứ chả phải kiểu tool chạy bằng cơm như trên kia.
    Sau khi tìm được địa chỉ thì chọn như hình

    
    
    Để setting mặc định và ấn Ok thôi, sau đó sẽ chọn nơi lưu, bạn đặt bừa 1 cái tên nào đó, ví dụ mình đặt tên là "1" và ấn lưu được kết quả như sau:

    

    Quay lại tutorial ấn Change pointer và mở lại cửa sổ Pointer scan này chọn Pointer scanner -> Rescan memory

    

    Cửa sổ Rescan pointer list hiện lên thì chọn như hình, giá trị sau khi mình ấn Change pointer là 603 nên mình điền 603 vào đó, ấn OK và đặt tên khác sau đó ấn lưu.

    

    Rồi thì lọc ra xong thì chỉ còn 1 địa chỉ thôi, double click vào nó để lấy ra bảng giá trị của mình. Sửa thành 5000 và đóng băng pointer đó lại. (phím tắt là phím Space)

    

    Quay lại tutorial và ấn Change pointer 1 lần nữa, nếu làm đúng thì nút Next sẽ hiện ra thôi.

    

    Lẽ ra tác giả nên hướng dẫn cách sử dụng công cụ này để mọi thứ dễ dàng hơn, chứ làm từng bước như hướng dẫn chắc chết mất, đọc chả thể hiểu nổi rồi.

Đăng nhận xét

0 Nhận xét