Hướng dẫn vượt qua CE Tutorial
Có nhiều bạn đang xài Cheat Engine nhưng không biết về CheatEngine Tutorial hoặc biết nhưng không bao giờ xài hoặc không thể vượt qua được các bước hướng dẫn vì nhiều lý do.
CE Tutorial giúp chúng ta nắm rõ về CheatEngine (CE) và CE còn có rất nhiều điều thú vị mà chúng ta chưa khám phá ra hết.
Vì vậy mà hôm nay Quân xin hướng dẫn cho các bạn vượt qua các bước hướng dẫn của CE Tutorial để các bạn có thể nắm rõ hơn về khả năng của phần mềm này. Thôi không dông dài nữa, ta vào luôn.
[spoil]
[/spoil]
Nếu các bạn thấy trong hướng dẫn này có gì sai hoặc không rõ. PM mình, mình sẽ edit lại.
Hướng dẫn này gồm 9 bước. Bạn có thể đi từ bước 1 đến bước 8 bằng cách nhập password tương ứng với bước đó.
ĐẦU TIÊN, mở Cheat Engine. Nếu là lần đầu mở CE thì sẽ có yêu cầu là bạn có mở Tutorial không và bạn nhấn Yes. Nếu bạn đã tắt Tutorial trước đó thì bạn vào trong folder của CE và tìm Tutorial rồi mở lên.
NOTE: Sau mỗi bước ta chọn NEW SCAN để Scan giá trị mới nhé.
Các bạn cũng nên vào bài viết Hướng dẫn chi tiết và bàn luận về Cheat Engine và Artmoney của fidodaica xem để hiểu rõ hơn nhé.
Một số thuật ngữ chuyên môn:
HP là viết tắt của Health (máu).
Scan type là Kiểu quét như Exact Value (giá trị chính xác), Unknown initial value (không biết giá trị ban đầu),…
Decreased value (giá trị giảm dần)
Increased value (giá trị tăng dần),…
Value type là Kiểu giá trị như 4 bytes, float, double,...
Address là địa chỉ
CE là CheatEngine
Bước 1 - Giới thiệu (Introduction)
[spoil]Welcome to the Cheat Engine Tutorial. (v3.1)
This tutorial will try to explain the basics of cheating on games, and getting you more familiar with Cheat Engine.
First open Cheat Engine if it hasn't been opened yet.
Then click on the 'open process' icon. (top left icon, with the computer on it)
When the process window is open find this tutorial. The process name is probably 'tutorial.exe' unless you
renamed it.
Select it, and click ok. Just ignore all the other buttons right now, but experiment with them later if you feel like it.
When everything went right, the process window should be gone now and at the top of CE the processname is
shown.
Now, click NEXT to continue to the next step. (Or fill in the password to proceed to that particular step you want)[/spoil]
Video
[spoil][video=youtube;EpAXv6s0RDg]http://www.youtube.com/watch?v=EpAXv6s0RDg[/video][/spoil]
Đầu tiên bạn cần mở CE và Tutorial. Vào CE click vào icon nhỏ nhỏ hình máy tính bên góc trái. Một cửa sổ mới hiện ra. Ở đây, bạn chọn Process bạn muốn cheat.
Tìm process Tutorial.exe, click vào nó rồi click nút OPEN, hoặc double click vào process đó cũng đc. Nếu bạn làm xong mọi thứ rồi, thì click NEXT để qua bước 2 thôi.
Bước 2 – Exact Value scanning (Quét giá trị chính xác) (PW=090453)
[spoil]Now that you have opened the tutorial with Cheat Engine lets get on with the next step.
You see at the bottom of this window the text Health: xxx
Each time you click 'Hit me' your health gets decreased.
To get to the next step you have to find this value and change it to 1000
To find the value there are different ways, but I'll tell you about the easiest, 'Exact Value':
First make sure value type is set to at least 2 bytes or 4 bytes, 1 byte will also work, but you'll run into a (easy to fix)
problem when you've found the address and want to change it. The 8-byte may perhaps works if the
bytes after the address are 0, but I wouldn't take the bet.
Single, double, and the other scans just don't work, because they store the value in a different way.
When the value type is set correctly, make sure the scantype is set to 'Exact Value'
Then fill in the number your health is in the value box. And click 'First Scan'
After a while (if you have a extremely slow pc) the scan is done and the results are shown in the list on the
left
If you find more than 1 address and you don't know for sure which address it is, click 'Hit me', fill in the new
health value into the value box, and click 'Next Scan'
repeat this until you're sure you've found it. (that includes that there's only 1 address in the list.....)
Now double click the address in the list on the left. This makes the address pop-up in the list at the bottom,
showing you the current value.
Double click the value, (or select it and press enter), and change the value to 1000.
If everything went ok the next button should become enabled, and you're ready for the next step.
Note:
If you did anything wrong while scanning, click "New Scan" and repeat the scanning again.
Also, try playing around with the value and click 'hit me'. [/spoil]
Video
[spoil][video=youtube;UTF0IuLvXgo]http://www.youtube.com/watch?v=UTF0IuLvXgo[/video][/spoil]
Trong bước này bạn phải tìm giá trị của máu và thay đổi nó thành 1000. Có lẽ các bạn đã từng xài CE để thay đổi giá trị trong game cũng sẽ biết rành về cái này rồi.
- Trong Tutorial nhấn vào “Hit me”.
- Trong CE ghi vào trong Value giá trị vừa thay đổi. VD: Health: 99 thì ghi là 99 rồi nhấn FIRST SCAN.
- Nếu vẫn còn nhiều giá trị, bạn vào tutorial nhấn “Hit me” thêm lần nữa để giá trị thay đổi.
- Vào CheatEngine, nhập giá trị vừa thay đổi và nhấn NEXT SCAN.
- Nếu bạn đã tìm thấy thì nhấn double vào Adress đó. Nó sẽ di chuyển xuống cửa sổ phía dưới.
- Bây giờ nhấn Double vào Value phía dưới và thay đổi thành 1000 và nhấn OK.
- Sang Tutorial nhấn NEXT để sang bước 3.
Bước 3 – Unknown Initial Value (Không biết giá trị ban đầu) (Password: 419482)
[spoil]Ok, seeing that you've figured out how to find a value using exact value let's move on to the next step.
In the previous test we knew the initial value so we could do a exact value, but now we have a status bar where
we don't know the starting value.
We only know that the value is between 0 and 500. And each time you click 'hit me' you lose some health. The
amount you lose each time is shown above the status bar.
Again there are several different ways to find the value. (like doing a decreased value by... scan), but I'll only
explain the easiest. "Unknown initial value", and decreased value.
Because you don't know the value it is right now, a exact value wont do any good, so choose as scantype
'Unknown initial value', again, the value type is 4-bytes. (most windows apps use 4-bytes)
click first scan and wait till it's done.
When it is done click 'hit me'. You'll lose some of your health. (the amount you lost shows for a few seconds and
then disappears, but you don't need that)
Now go to Cheat Engine, and choose 'Decreased Value' and click 'Next Scan'
When that scan is done, click hit me again, and repeat the above till you only find a few.
We know the value is between 0 and 500, so pick the one that is most likely the address we need, and add it to
the list.
Now change the health to 5000, to proceed to the next step.[/spoil]
Video
[spoil][video=youtube;cswvcYXbjbM]http://www.youtube.com/watch?v=cswvcYXbjbM[/video][/spoil]
Lần này bạn sẽ phải thay đổi giá trị thành 5000 mới có thể sang bước tiếp. Hướng dẫn này sẽ dành cho Beginners.
- Đầu tiên click “Hit me” ở Tutorial, đến Cheat Engine và chọn Unknown initial value ở phần Scan type rồi nhấn FIRST SCAN.
- Vẫn ở phần Scan type chọn Decreased value rồi nhấn NEXT SCAN.
- Nếu còn nhiều Address quá, không xác định đc giá trị đúng ở đâu, ta lại nhấn “Hit me” trong tutorial tiếp rồi nhấn Next scan. Nếu địa chỉ vẫn còn nhiều thì cứ lặp lại đến khi còn khoảng vài cái rồi chọn 1 Address bạn thấy đúng nhất.
- Thay đổi value thành 5000.
Bước 4 – Floating Points (Password: 890124)
[spoil]In the previous tutorial we used bytes to scan, but some games store information in so called 'floating point' notations.
(probably to prevent simple memory scanners from finding it the easy way)
a floating point is a value with some digits behind the point. (like 5.12 or 11321.1)
Below you see your health and ammo. Both are stored as Floating point notations, but health is stored as a float and
ammo is stored as a double.
Click on hit me to lose some health, and on shoot to decrease your ammo with 0.5
You have to set BOTH values to 5000 or higher to proceed.
Exact value scan will work fine here, but you may want to experiment with other types too.[/spoil]
Video
[spoil][video=youtube;i13DVOX63ds]http://www.youtube.com/watch?v=i13DVOX63ds[/video][/spoil]
Ở đây, chúng ta cần tìm giá trị HP và ammo và thay đổi chúng thành 5000 hoặc cao hơn.
Làm giống như những lần trước, nhưng thay vào giá trị 4 bytes thì ta thay bằng Float (nếu ta scan HP) và Double (nếu scan ammo). Nếu bạn cần biết cách làm chi tiết thì ở dưới đây.
- Ta nhìn vào phần Value type và chọn Float, Scan Type chọn Exact Value và nhìn vào giá trị HP.
- Nhấn vào “Hit me”, giá trị sẽ giảm dần.
- Ta sẽ thấy giá trị của HP có dấu chấm. Ta sẽ ghi số trước dấu chấm. VD: Health: 98.2 thì sẽ ghi là 98 vào trong Value rồi chọn FIRST SCAN.
- Rồi sẽ chọn 1 Address đúng nhất rồi thay đổi giá trị thành 5000. Thế là xong HP.
- Ammo tương tự nhưng Scan type là Double. Nếu xong thì nhấn Next. Sang bước 5.
[spoil]Sometimes the location something is stored at changes when you restart the game, or even while you're playing.. In that case you can use 2 things to still make a table that works.
In this step I'll try to describe how to use the Code Finder function.
The value down here will be at a different location each time you start the tutorial, so a normal entry in the address
list wouldn't work.
First try to find the address. (you've got to this point so I assume you know how to)
When you've found the address, right-click the address in Cheat Engine and choose "Find out what writes to this
address". A window will pop up with an empty list.
Then click on the Change value button in this tutorial, and go back to Cheat Engine. If everything went right there
should be an address with assembler code there now.
Click it and choose the replace option to replace it with code that does nothing. That will also add the code address
to the code list in the advanced options window. (Which gets saved if you save your table)
Click on stop, so the game will start running normal again, and close to close the window.
[Now, click on Change value, and if everything went right the Next button should become enabled.
Note: When you're freezing the address with a high enough speed it may happen that next becomes visible anyhow[/spoil]
[FONT="]
[/FONT] Video
[spoil][video=youtube;XVeXBmyP9mA]http://www.youtube.com/watch?v=XVeXBmyP9mA[/video][/spoil]
Lần này cũng scan rồi tìm ra các Address. Sau khi scan xong các bạn chọn address đó xuống dưới bảng phía dưới.
- Nhấn chuột phải vào address đó rồi chọnFind out what writes to this address rồi chọn YES.
- Một bảng mới hiện ra có tiêu đề là The following opcodes changed the selected address.
- Bạn nhấn “Change value” ở Tutorial để thay đổi giá trị và trong bảng sẽ hiện ra 1 dòng dưới phần Instruction.
- Ta chọn vào dòng đó rồi chọn Replace.
- Một bảng hiện ra, ta có thể đặt tên thoải mái cho dòng đó. Hoặc để mặc định cũng được. Rồi nhấn OK!.
Bước 6 – Pointers (Password: 098712)
[spoil]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 cal.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[/spoil]
[FONT="]
[/FONT] Video
[spoil][video=youtube;Eo_thbmfFIU]http://www.youtube.com/watch?v=Eo_thbmfFIU[/video][/spoil]
Bước 6 này chúng ta cũng làm giống như phần 1 đến 3 của bước 5. Và phải thay đổi giá trị thành 5000.
- Trước tiên là chúng ta “Change value” của Tutorial.
- Scan và làm tới phần 3 của bước 5.
- Ta chọn vào dòng dưới của Instruction rồi chọn phần More Information. Một bảng Extra info sẽ hiện ra.
- Bạn nhìn vào phần dưới Copy memory có 1 giá trị gồm chữ và số, theo như của mình là 0006E6D8 (Của các bạn sẽ có thể khác). Chúng ta để giá trị đó qua 1 bên.
- Sau đó ta vào Cheat Engine. Ở phần Scan ta chọn HEX rồi nhập code đó vào 0006E6D8 rồi chọn FIRST SCAN.
- Sau khi ra được Address rồi, ta chọn address đó rồi chọn vào Add address manually ở góc dưới bên phải của Cheat Engine.
- Một bảng Add address hiện ra, ta chọn vào Pointer. Nó sẽ hiện ra thêm 1 phần ở dưới nữa.
- Ở phần Address of pointer ta ghi địa chỉ vừa tìm được ra. Của mình là 0057C307 sau đó nhấn OK! Chừng nào Value của Cheat Engine ra số đúng giống bên Value của Tutorial là OK, nếu là dấu hỏi thì ta làm lại từ bước 1.
Bước 7 - Code Injection: (Password: 013370)
[spoil] Code injection is a technique where one injects 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 with 1 each time you click it.
Your task is to use code injection to increase the value of your health with 2 every 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.
a 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
[/spoil]
Video
[spoil][video=youtube;kRndoQX84bs]http://www.youtube.com/watch?v=kRndoQX84bs[/video][/spoil]
- Tìm nhấn “hit me” và tìm ra giá trị cuối cùng.
- Chúng ta sẽ nhấn chuột phải vào address đó, chọn Find out what writes to this address rồi chọn YES.
- Nhấn vào “hit me” 1 lần nữa để CE tìm ra code.
- Chọn vào code đó và ta chọn Show disassembler.
- Chọn dòng đầu tiên ta nhìn thấy trong bảng. Của mình là dec [ebx+00000454].
- Chọn Thanh thực đơn Tools/Auto assembler.
- Chọn thanh thực đơn của Auto assembler là Temple/Code injectio rồi OK.
- Trong đó hiện ra 1 bảng code thay dec [ebx+00000454] thành add [ebx+00000454],2 rồi Execute. OK!
- Ra ngoài Tutorial nhấn “hit me” và next qua bước 8.
Bước 8 - Multilevel Pointers: (Password: 525927)
Video
[spoil]This step will explain how to use multi-level pointers.
In step 6 you had a simple level-1 pointer, with the first address found already being the real base address.
This step however is a level-4 pointer. It has a pointer to a pointer to a pointer to a pointer to a pointer to the health.
You basicly do the same as in step 6. Find out what accesses the value, look at the instruction and what probably is
the base pointer value, and what is the offset, and already fill that in or write it down. But in this case the address
you'll find will also be a pointer. You just have to find out the pointer to that pointer exactly the same way as you did
with the value. Find out what accesses that address you found, look at the assembler instruction, note the probable
instruction and offset, and use that.
and continue till you can't get any further (usually when the base address is a static address, shown up as green)
Click Change Value to let the tutorial access the health.
If you think you've found the pointer path click Change Register. The pointers and value will then change and you'll
have 3 seconds to freeze the address to 5000
Extra: This problem can also be solved using a auto assembler script, or using the pointer scanner
Extra2: In some situations it is recommended to change ce's codefinder settings to Access violations when
encountering instructions like mov eax,[eax] since debugregisters show it AFTER it was changed, making it hard to
find out the the value of the pointer
Extra3: If you're still reading. You might notice that when looking at the assembler instructions that the pointer is
being read and filled out in the same codeblock (same routine, if you know assembler, look up till the start of the
routine). This doesn't always happen, but can be really useful in finding a
[FONT="]pointer when debugging is troublesome[/FONT][/spoil]
[spoil][video=youtube;p6psMboRTUY]http://www.youtube.com/watch?v=p6psMboRTUY[/video][/spoil]
[Spoil] Đầu tiên, scan giá trị ở cửa sổ Tutorial.
Nếu bạn tìm thấy nhiều Address quá thì hãy click “Change value” để thay đổi giá trị.
Giá trị đã bị thay đổi thành 405.
Scan để lấy giá trị đó.
Double-click vào địa chỉ của bạn để add nó xuống table ở dưới.
Click phải vào địa chỉ bạn tìm thấy và chọn “Find out what writes to this address”
Click “Change value” để lấy giá trị để thay đổi.
Bạn sẽ có kết quả thế này:
Nhấn stop, rồi click vào giá trị vừa tìm ra rồi nhấn vào “More information”.
Bạn sẽ có 1 cửa sổ tương tự như hình dưới:
Trong bài này là 00a693d8. Nhìn vào [eax+18]
Số 18 là offset, bạn sẽ phải cần nhớ nó.
Rồi vào CE, vào chỗ scan giá trị. Ta chọn vào Hex và Value type là 4 Bytes.
Rồi nhập giá trị tìm kiếm vào là 00a69f80. Đó là Pointer thứ nhất!
Tiếp theo, click vào “Add address manually” và check vào ô “Pointer” .
OK! Thế là xong.
Bây giờ bạn đã có pointer trong bảng rồi, ta sẽ cần tìm pointer của pointer vừa tìm, rồi add nó vào SAME entry ở bảng. Tiếp nha.
Click phải vào Pointer ở trong bảng rồi chọn “Find out what reads from this address”, rồi thay đổi giá trị ở cửa sổ Tutorial.
Bạn sẽ có 1 kết quả:
Nhấn stop và vào “More information” giống như mới nãy.
Bạn đã tìm thấy pointer thứ 2! Trong hướng dẫn này nó là “00a69f80”. Và không có offset nào!
Làm như lần trước và chọn hex để tìm giá trị (giá trị 00a69f80)
Và bạn đã tìm đc pointer thứ 2.
Double-click vào “Address” và add giá trị mới ở dưới giá trị gốc. (00a69efc)
OK! Tới pointer thứ 3.
Giống như 2 lần trước. Ta có More Information.
Đó là giá trị thứ 3 trong bản hướng dẫn, là 00a69ee8. Offset trong hình là 14
Hex và add pointer giống như lần trước.
Nhấn OK!
- “Find out what accesses this address” từ pointer thứ 3, hiện ra 1 cửa sổ mới và ta lại chọn “Find out what accesses this pointer”
Thay đổi giá trị ở cửa sổ Tutorial và ta lại chọn giá trị mới đó và More information.
- Offset là 0c và bạn tìm Address bằng cách hex như những lần trước.
Bạn sẽ có address như thế này.
Nó là màu xanh. Address này sẽ không thay đổi. Đó là Pointer cuối cùng.
-Add address cuối cùng và nhập offset của bạn.
Click OK!.
Bây giờ đóng băng address pointer lại và đặt giá trị là 5000.
Vào cửa sổ Tutorial và “Change Pointer”
[/spoil]
Bước 9 - Injection++: (Password: 31337157)
Video
[spoil][video=youtube;_0TGbAl03Do]http://www.youtube.com/watch?v=_0TGbAl03Do[/video][/spoil]
Bước này chỉ cần coi VIDEO thôi nhé
Credit:
Nereid666 (CE forum)
Shikakapoop (CE forum)
mystykMeFi (Youtube)
anhquanhs
Nereid666 (CE forum)
Shikakapoop (CE forum)
mystykMeFi (Youtube)
anhquanhs
Chỉnh sửa cuối:
.