Đây là bài đăng chỉ dẫn cách dùng Cheat Engine để “ăn gian” khi chơi một vài trò chơi trên máy tính. Cheat Engine là công cụ quét bộ nhớ, cho phép bạn truy cập dữ liệu đã lưu trong bộ nhớ của máy tính và thay đổi dữ liệu đó. Bằng cách này, bạn có thể thay đổi thông tin trong game, chẳng hạn như sức mạnh, đạn được, điểm, mạng sống và một vài thứ khác trong kho của bạn.
những bước
Phần 1Phần 1 Cài đặt Cheat Engine
1Mở trang Cheat Engine. Bạn cần truy cập https://cheatengine.org/downloads.php bằng trình duyệt của máy tính. 2Nhấp vào Download Cheat Engine (Tải Cheat Engine). Đây là đường dẫn lớn ở giữa trang. Nút này cũng hiển thị thông tin phiên bản hiện tại của Cheat Engine (chẳng hạn như Download Cheat Engine 6.7 (Tải Cheat Engine 6.7))Nếu bạn muốn dùng Cheat Engine trên Mac, hãy nhấp vào đường dẫn Download Cheat Engine 6.2 For Mac (Tải Cheat Engine 6.2 cho Mac).3Cài đặt Cheat Engine. Thao tác này sẽ khác nhau tùy thuộc vào hệ điều hành của máy tính: Windows — Nhấp đúp vào tập tin cài đặt Cheat Engine, nhấp Yes (Có) khi được hỏi, nhấp Next (Tiếp tục), đánh dấu vào ô “I agree” (Tôi đồng ý) và nhấp Next, nhấp Next thêm 3 lần nữa, bỏ chọn ô “I agree to install McAfee WebAdvisor” (Tôi đồng ý cài đặt McAfee WebAdvisor) và nhấp Next, rồi nhấp Install (Cài đặt). Khi quá trình cài đặt hoàn tất, bạn sẽ nhấp Next khi được hỏi, rồi nhấp Finish (Hoàn tất).Mac — Nhấp đúp vào tập tin DMG Cheat Engine, xác minh việc cài đặt khi được hỏi, nhấp và kéo biểu tượng Cheat Engine vào thư mục “Applications” (Ứng dụng), và thực hiện theo chỉ dẫn trên màn hình.4Mở Cheat Engine. Sau khi cài đặt Cheat Engine, bạn sẽ mở Start {“smallUrl”:”https:\/\/www.TaiNgheTroThinh.com\/images_en\/0\/07\/Windowsstart.png”,”bigUrl”:”https:\/\/www.TaiNgheTroThinh.com\/images\/thumb\/0\/07\/Windowsstart.png\/30px-Windowsstart.png”,”smallWidth”:460,”smallHeight”:460,”bigWidth”:30,”bigHeight”:30,”licensing”:”<div class=\”mw-parser-output\”><\/div>”} (trên Windows) hoặc Launchpad (trên Mac), rồi nhấp vào Cheat Engine. Có thể bạn phải nhấp vào Yes (Có) hoặc Open (Mở) trước khi Cheat Engine mở ra
Phần 2Phần 2 Mở chương trình trò chơi trong Cheat Engine
1Khởi động trò chơi. Bạn chỉ cần mở trò chơi mà bạn muốn dùng với Cheat Engine. Lưu ý, bạn không thể mở trò chơi trực tuyến có nhiều người chơi hoặc có liên kết với máy chủ.2Nhấp vào biểu tượng “Processes” (Chương trình). Trong cửa sổ Cheat Engine, bạn sẽ nhấp vào biểu tượng máy tính ở phía trên góc trái. Thao tác này sẽ mở một cửa sổ khác có những chương trình hiện hành của máy tính. 3Chọn chương trình trò chơi. Kéo xem danh sách những chương trình đến khi bạn tìm thấy trò chơi, rồi nhấp vào tên của trò chơi. Nếu bạn muốn dùng Cheat Engine cho trò chơi trên trình duyệt, hãy chọn tên của trình duyệt tại đây. Nếu trò chơi không hiển thị trong danh sách “Processes”, bạn không thể chỉnh sửa nó trong Cheat Engine.Trước tiên có thể bạn phải nhấp vào thẻ Processes ở phía trên cửa sổ.4Nhấp vào OK. Đây là lựa chọn ở bên dưới cửa sổ. Thao tác này sẽ mở trò chơi trong Cheat Engine
Phần 3Phần 3 Tìm và thay đổi những giá trị trong trò chơi
1Xác định yếu tố cần thay đổi. Để bạn có thể thay đổi một yếu tố của trò chơi, yếu tố đó phải gắn liền với số (chẳng hạn như lượng đạn dược, sức mạnh hoặc số lượng tài nguyên). Số phải hiển thị trên màn hình. Ví dụ, nếu muốn thay đổi số của tài nguyên nào đó trong kho, trước tiên bạn phải mở trang thông tin có hiển thị số lượng tài nguyên.2Thu nhỏ cửa sổ trò chơi và nhấp vào Cheat Engine. Bạn cần mở cửa sổ Cheat Engine khi cửa sổ trò chơi đã được thu nhỏ. Đừng tạm dừng trò chơi khi bạn thực hiện việc này.3Nhấp vào New Scan (Quét mới). Đó là lựa chọn ở phía trên cửa sổ Cheat Engine, ngay bên cạnh khung ở bên trái. Bất kỳ khi nào muốn quét giá trị mới, bạn cần nhấp vào New Scan. 4Chọn loại hình quét. Có 5 loại hình quét mà bạn có thể thực hiện khi muốn bắt đầu lượt quét mới. Hai loại hình quét mà bạn sẽ dùng là “Exact Value” (Giá trị chính xác) và “Unknown initial value” (Chưa biết giá trị ban đầu). dùng danh sách lựa chọn bên cạnh “Scan Type” (Loại hình quét) để chọn loại hình quét mà bạn muốn. những loại hình quét như sau: Exact value (Giá trị chính xác): dùng loại hình quét này nếu bạn biết số chính xác cần thay đổi. Ví dụ, nếu biết số chính xác của mạng sống hoặc số đạn dược đang có, bạn có thể chọn lựa chọn này.Unknown initial value (Chưa biết giá trị ban đầu): Trong những trò chơi điện tử, đôi khi giá trị không hiển thị dưới dạng số. Ví dụ, sức mạnh thường hiển thị dưới dạng thước đo thay vì số. Trong trường hợp này, bạn không có số chính xác của sức mạnh hiện tại. Sức mạnh vẫn có con số đại diện, nhưng bạn không thấy nó trên màn hình. Nếu đây là trường hợp của bạn, hãy chọn Unknown initial value.Bigger than… (Lớn hơn…):` Đây là lựa chọn khi bạn không biết chính xác số đang tìm, nhưng bạn biết giá trị khả thi nhỏ nhất.`Smaller than… (Nhỏ hơn…): Lựa chọn này phù hợp với tình huống mà bạn không biết giá trị chính xác, nhưng biết giá trị khả thi lớn nhất.Value between… (Giá trị giữa…): Đây là lựa chọn cho phép bạn nhập dãy giá trị cần tìm.5Chọn loại dữ liệu: Loại dữ liệu đại diện cho giá trị được lưu trong bộ nhớ. Có thể bạn không biết nên chọn loại dữ liệu nào, và bạn sẽ phải đoán. Hãy dùng danh sách lựa chọn bên cạnh “Data type” (Loại dữ liệu) để chọn loại dữ liệu. Nếu không tìm được giá trị cần cho việc dùng loại dữ liệu nào đó, bạn sẽ nhấp vào New Scan và thử một lần nữa bằng việc dùng loại dữ liệu khác. một vài loại dữ liệu phổ biến mà bạn sẽ dùng như sau: Bytes: Hai loại dữ liệu mà bạn sẽ dùng thường xuyên nhất là 2 bytes và 4 bytes. Hầu hết ứng dụng Windows đều dùng 4 bytes, nên bạn cứ bắt đầu với giá trị đó. Bạn cũng có thể tìm những giá trị này bằng việc dùng 2 bytes. Bên cạnh đó, dữ liệu 1 bytes và 8 bytes cũng hiệu quả, nhưng có thể bạn sẽ gặp phải một vài vấn đề.Float: Loại dữ liệu floating po
int là giá trị có dấu thập phân (nhưng bạn sẽ không thấy dấu thập phân trên màn hình trò chơi). Đôi khi trò chơi lưu trữ giá trị dưới dạng floating point để ngăn những lượt quét bộ nhớ cơ bản. Nếu bạn không tìm được giá trị cần tìm bằng việc quét bytes, hãy thử quét floating point.Double: Dữ liệu double cũng tương tự như floating point nhưng chúng chứa gấp đôi lượng số. Nếu bạn không tìm được giá trị bằng cách quét dữ liệu bytes hoặc float, hãy thử quét dưới dạng dữ liệu double.All (Tất cả): Đây là lựa chọn quét toàn bộ giá trị của tất những những loại dữ liệu. Lựa chọn này hữu ích khi bạn không biết đang tìm kiếm điều gì, nhưng bạn sẽ nhận được nhiều kết quả tìm kiếm chưa qua sàng lọc.6Nhập giá trị mà bạn muốn thay đổi và nhấp vào First scan (Lượt quét đầu tiên). Ví dụ, nếu chỉ còn 20 viên đạn, bạn sẽ nhập 20 vào trường “Value” (Giá trị). Thao tác này sẽ quét tìm tất cả giá trị có số “20”. Bạn sẽ nhận được rất nhiều giá trị trong danh sách địa chỉ, và bạn cần rút gọn thông tin. 7Trở về trò chơi và thay đổi giá trị. Cách thao tác sẽ tùy thuộc vào trò chơi; ví dụ: nếu muốn tăng sức mạnh, bạn phải cố tình làm giảm sức mạnh để hạ giá trị. Nếu bạn muốn tăng đạn dược, hãy bắn vài viên đạn để giảm lượng đạn dược đang có. 8Trở về Cheat Engine và quét giá trị số đã cập nhật. Thu nhỏ cửa sổ trò chơi một lần nữa và trở về Cheat Engine. Nhập số mới vào phần “Value” (Giá trị), rồi nhấp vào Next Scan (Quét mới). Thao tác này sẽ quét toàn bộ giá trị trong lần quét đầu tiên và chỉ hiển thị những địa chỉ đã thay đổi giá trị được bạn nhập vào thanh “Value”. Unknown initial value: Nếu bạn đã chọn “Unknown initial value” trong lần quét đầu tiên, hãy chọn Increased value (Giá trị tăng) hoặc Decreased value (Giá trị giảm) bên dưới “Scan type” tùy thuộc vào việc giá trị (hoặc thước đo) tăng hay giảm. Việc này sẽ quét toàn bộ giá trị tăng hoặc giảm thay vì quét tìm số chính xác.9Lặp lại quy trình tìm kiếm đến khi bạn có tối đa 4 giá trị. Bạn sẽ tiếp tục thay đổi số và tìm kiếm số đã cập nhật đến khi bạn có không quá 4 giá trị hiển thị ở phần bên trái của Cheat Engine. Dần dần bạn sẽ thấy số đã tìm trước đó hiển thị trong cột “Previous” (Cũ) của mỗi giá trị số, còn giá trị hiện tại của đối tượng sẽ hiển thị trong cột “Value”.10Thêm giá trị vào danh sách địa chỉ. Bạn có thể nhấp đúp vào giá trị để thêm nó vào danh sách địa chỉ ở bên dưới, hoặc bạn có thể nhấp vào địa chỉ để chọn và nhấp vào mũi tên chéo màu đỏ ở bên dưới góc phải danh sách giá trị. Thao tác này sẽ đặt giá trị vào danh sách địa chỉ ở bên dưới cửa sổ. Để chọn nhiều địa chỉ, bạn có thể ấn “Shift”, rồi nhấp vào địa chỉ ở phía trên và địa chỉ ở bên dưới.11Thay đổi số thành giá trị mà bạn muốn. Sau đây những bước thay đổi số giá trị: Nhấp đúp vào số bên dưới “Value” trong danh sách ở bên dưới Cheat Engine.Nhập số mới vào trường “Value”Nhấp vào Ok.12Kiểm tra xem giá trị đã được cập nhật trong trò chơi chưa. Khi bạn mở lại trò chơi, giá trị mà bạn đã chỉnh sửa nên là số mà bạn vừa nhập. Phần tiếp theo sẽ chỉ dẫn bạn cách ngăn giá trị thay đổi bằng việc thay nó bằng mã không vận hành. Bạn cần thay đổi giá trị thêm một lần nữa trước khi nó cập nhật
Phần 4Phần 4 Thay mã để giá trị không thay đổi
1Quét tìm giá trị mà bạn muốn dừng thay đổi. Đây là phần chỉ dẫn bạn cách dùng Code Finder (Công cụ tìm mã) để tìm thông tin liên quan đến địa chỉ mà bạn muốn thay đổi và thay bằng mã không vận hành. Việc này giúp cho giá trị không thay đổi trong trò chơi. Hãy áp dụng những bước trong phần trước để tìm giá trị mà bạn muốn thay đổi. Tiếp theo, bạn sẽ thêm giá trị đó vào danh sách ở cuối màn hình. 2Nhấp phải vào địa chỉ và nhấp vào Find out what access this address (Tìm yếu tố truy cập địa chỉ này). Đây là thao tác mở Cheat Engine Debugger. Bạn sẽ thấy lệnh liên quan đến địa chỉ đang truy cập. 3Nhấp vào Yes (Có). Thao tác này xác nhận rằng bạn muốn thêm công cụ gỡ lỗi vào Cheat Engine. Công cụ gỡ lỗi mã liền mở ra. Bạn sẽ thấy danh sách trống khi cửa sổ xuất hiện. 4Trở về trò chơi và thay đổi giá trị một lần nữa. Nhắc lại, bạn cần trở về trò chơi và thực hiện thao tác thay đổi giá trị mà bạn muốn “đóng băng”. Thao tác này khiến mã lệnh truy cập địa chỉ đã chọn hiển thị trong cửa sổ gỡ lỗi. 5Trở về Cheat Engine và nhấp vào lệnh trong danh sách. Có thể bạn sẽ thấy nhiều địa chỉ tại đây. Trong trường hợp này, hãy chọn địa chỉ không liên quan đến địa chỉ gốc. Tìm lệnh có giá trị trong ngoặc “[” và “]” khác với phần còn lại. 6Nhấp vào Replace (Thay thế). Thao tác này thay mã đó bằng mã không vận hành (NOP).Nếu bạn thấy nhiều lựa chọn trong danh sách, hãy chọn toàn bộ.7Nhấp vào Stop (Dừng). Mã không vận hành liền có hiệu lực. Như vậy, giá trị sẽ không thay đổi trong trò chơi. Để khôi phục mã gốc, bạn cần chọn lựa chọn trong danh sách và nhấp vào Show disassembler (Hiển thị công cụ tách). Nhấp phải vào “NOP” và nhấp vào Restore with original code (Khôi phục mã gốc). Nếu bạn không thấy lựa chọn này, hãy nhấp vào Replace with code that does nothing (Thay bằng mã không hoạt động), nhấp vào Yes (Có). Nhấp vào NOP một lần nữa và chọn Restore with orignal code
Phần 5Phần 5 dùng pointer để tìm yếu tố liên quan đến giá trị
1Quét tìm giá trị cần thay đổi. Đôi khi giá trị cũng có thể thay đổi địa chỉ khi bạn khởi động lại trò chơi, hoặc khi đang chơi trò chơi. Bạn có thể dùng pointer để tìm thông tin liên quan đến địa chỉ. Khi bạn tìm được địa chỉ gốc cố định không thay đổi, bạn có thể thay đổi giá trị đó. 2Nhấp phải vào địa chỉ và nhấp Find out what writes to this address (Tìm thông tin liên quan đến địa chỉ này). Thao tác này liền mở cửa sổ công cụ gỡ lỗi. Nếu có nhiều địa chỉ, bạn sẽ mở thêm nhiều cửa sổ gỡ lỗi trong giới hạn cho phép của Cheat Engine.3Trở về trò chơi và thay
đổi giá trị một lần nữa. Nhắc lại, bạn cần trở về trò chơi và thực hiện thao tác thay đổi giá trị cần thay đổi (chẳng hạn như dùng vũ khí, làm cho nhân vật bị thương). Đây là thao tác mở lệnh liên quan đến địa chỉ trong cửa sổ gỡ lỗi. Nếu không có gì thay đổi trong cửa sổ gỡ lỗi, bạn đang dùng địa chỉ không chính xác. Hãy thử địa chỉ khác.4Trở về Cheat Engine và nhấp vào lệnh trong danh sách. Lệnh này có trong cửa sổ gỡ lỗi. Có thể bạn sẽ thấy nhiều địa chỉ. Trong trường hợp này, hãy tìm lệnh có chuỗi ký tự trong ngoặc “[” và “]” khác với phần còn lại. Nếu không thấy địa chỉ nào có chuỗi ký tự khác, bạn thử kiểm tra xem toàn bộ thông tin có pointer giống nhau hay không. Nếu chuỗi ký tự kết thúc bằng dấu + và số (chẳng hạn như [ESI+14]). Đó là số offset. Hãy ghi chú số đó, vì bạn sẽ cần đến nó ở bước sau.5Nhấp vào More information (Thông tin khác). Thao tác này cho bạn thấy lệnh xuất hiện khi giá trị thay đổi trong màn hình Extra Info (Thông tin khác). Bạn sẽ thấy pointer liên quan đến địa chỉ. Bạn cũng có thể tìm địa chỉ bằng cách kiểm tra những ký tự trong ngoặc, rồi kiểm tra số phía sau những ký tự được liệt kê ở bên dưới. Ví dụ, nếu bạn thấy “[rdx]” ở bên cạnh địa chỉ, hãy tìm RDX=xxxxxxxx ở bên dưới.6Nhấp vào ô chọn bên cạnh “Hex” và thực hiện lượt quét mới để tìm địa chỉ pointer. Địa chỉ của pointer được đề cập trong câu “The value of the pointer needed to find this address is probably xxxxxxxxx” (Giá trị của pointer cần dùng để tìm địa chỉ này có thể là xxxxxxxxx). Hãy áp dụng những bước sau để tìm địa chỉ ở cuối câu này. Nhấp vào New Scan (Lượt quét mới).Nhấp vào ô chọn “Hex” bên cạnh trường “Value” (Giá trị).Nhập địa chỉ pointer vào trường Value và nhấp vào First scan (Lượt quét đầu tiên).7Nhấp đúp vào địa chỉ pointer. Thao tác này thêm địa chỉ vào danh sách ở bên dưới cửa sổ Cheat Engine. Địa chỉ hiển thị màu xanh lá trong kết quả quét là địa chỉ cố định và cũng có thể là pointer mà bạn đang tìm. Trong một vài trường hợp, pointer mà bạn tìm thấy cũng là pointer. Đây là pointer đa cấp. Trong trường hợp này, bạn cần lặp lại những bước trên cho mỗi pointer tìm được để tìm ra địa chỉ pointer cố định gốc.8Nhấp đúp vào số bên dưới “Address” (Địa chỉ). Màn hình liền hiển thị hộp thoại “Change address” (Thay đổi địa chỉ). 9Sao chép địa chỉ trong trường này và nhấp vào Cancel (Hủy). Để sao chép địa chỉ, bạn chỉ cần tô sáng toàn bộ dữ liệu trong trường ở phía trên ô “Change address” (Thay đổi địa chỉ). Nhấp phải và nhấp vào Copy (Sao chép), rồi nhấp vào Cancel để đóng trường đó. 10Nhấp vào Add address manually (Thêm địa chỉ theo cách thủ công). Đây là nút ở phía trên góc trái danh sách hiển thị bên dưới Cheat Engine. Thao tác này mở ra khung trông giống như khung “Change address”, chỉ khác là khung này cho phép bạn thêm địa chỉ. 11Nhấp vào ô bên cạnh “Pointers”. Thao tác này liền mở rộng khung và thêm một trường dữ liệu mới cho phép bạn nhập pointer. 12Dán địa chỉ pointer vào trường bên dưới “Pointers” và nhấp vào Ok. Đây là thao tác thêm địa chỉ mới cho pointer kiểm soát giá trị mà bạn muốn thay đổi. Địa chỉ pointer vừa tạo sẽ hiển thị dưới dạng “P-->xxxxxxxx”. Điều đó cho biết pointer hướng đến một địa chỉ cụ thể. Nếu có số offset, bạn sẽ nhập nó vào khoảng trống phía trên trường đã dán địa chỉ.Nếu có nhiều hơn một pointer, bạn sẽ nhấp vào Add offset (Thêm số offset). Thao tác này giúp bạn có thêm nhiều ô số offset ở phía trên trường dán địa chỉ. Hãy nhập số offset đúng vào từng ô.13Nhấp vào ô “Active” (Hoạt động) bên cạnh địa chỉ pointer mà bạn vừa thêm. Đây là ô bên dưới “Active” trong danh sách địa chỉ ở cuối màn hình. Như vậy, pointer liền được kích hoạt. 14Thay đổi giá trị của địa chỉ vừa thêm. Giá trị của địa chỉ pointer vừa tạo nên giống với địa chỉ của giá trị mà bạn đã tìm kiếm. Nếu pointer liên quan đến địa chỉ khác, địa chỉ gốc mà bạn quét được sẽ mất hiệu lực. Tuy nhiên, bạn vẫn có thể thay đổi giá trị của địa chỉ pointer vừa tạo. Đây là thao tác khả thi bất kể vị trí giá trị nằm ở đâu. Nhấp vào số bên dưới “value” dành cho địa chỉ mà bạn vừa thêm. Nhập giá trị số mới và nhấp vào Ok
Phần 6Phần 6 dùng Code Injection để thay đổi mã
1Quét giá trị mà bạn muốn dừng. Phần này chỉ dẫn bạn cách dùng Code Injection để thay đổi cách tạo giá trị của mã. Ví dụ, nếu nhân vật mất sức mạnh mỗi khi bị đánh, bạn có thể thay đổi mã để tăng sức mạnh khi bị đánh. 2Nhấp phải vào địa chỉ và nhấp vào Find out what access this address (Tìm yếu tố truy cập địa chỉ này). Công cụ Cheat Engine Debugger liền hiển thị. 3Nhấp vào Yes (Có). Đây là thao tác xác nhận rằng bạn muốn thêm công cụ gỡ lỗi vào Cheat Engine. Công cụ gỡ lỗi mã liền được mở sau cú nhấp chuột. Bạn sẽ thấy danh sách trống khi cửa sổ hiển thị. 4Trở về trò chơi và thay đổi giá trị một lần nữa. Nhắc lại, bạn cần trở về trò chơi và thực hiện thao tác thay đổi giá trị mà bạn muốn dừng. Thao tác này khiến mã truy cập địa chỉ đã chọn hiển thị trong cửa sổ công cụ gỡ lỗi. 5Trở về trò chơi và thay đổi giá trị một lần nữa. Nhắc lại, bạn cần trở về trò chơi và thực hiện thao tác thay đổi giá trị mà bạn muốn dừng. Thao tác này làm cho lệnh liên quan đến địa chỉ hiển thị trong cửa sổ gỡ lỗi. 6Trở về Cheat Engine và nhấp vào lệnh trong danh sách. Có thể bạn sẽ thấy nhiều địa chỉ tại đây. Trong trường hợp này, hãy tìm lệnh có từ “sub” để giảm giá trị, hoặc từ “add” hay “inc” để tăng giá trị. 7Nhấp vào Show disassembler (Hiển thị công cụ tách). Như vậy, mã sẽ hiển thị trong công cụ tách. 8Chọn mã giảm hoặc tăng giá trị. Thường thì đây là lệnh đầu tiên ở phía trên phần mã. Phần đầu của mã thường có từ “Sub” hoặc “Add” với chức năng làm tăng hoặc giảm giá trị. 9Nhấp vào Tools (Công cụ) và Auto Assemble (Sắp xếp tự động). Đây là thao tác mở công cụ sắp xếp tự động. 10Nhấp vào Template (Mẫu) và Full Injection (Chèn toàn bộ). Thao tác này làm xuất hiện cửa sổ xác nhận địa chỉ mà bạn muốn chèn mã. 11Đảm bảo đó là địa chỉ chính xác và nhấp vào Ok. Đảm bảo địa chỉ tại trường đó giống với địa chỉ đã chọn trong cửa sổ tách Memory Viewer, rồi nhấp Ok. Màn hình sẽ hiển thị mẫu mới. 12Thay mã đối lập. Kéo thanh cuộn xuống đến phần “Code” (Mã). Dòng lệnh bên dưới phần này là mã làm thay đổi giá trị. Nếu dòng lệnh đó bắt đầu với “sub”, bạn sẽ thay “sub” thành “add”. Nếu bạn thấy dòng lệnh bắt đầu bằng “add”, hãy thay “add” thành “sub”. Bạn cũng có thể thay đổi giá trị ở cuối dòng lệnh để thay đổi mức độ khác biệt muốn đặt cho giá trị đó. 13Nhấp vào Execute (Thực thi) và sau đó nhấp Yes (Có) hai lần. Nút “Execute” ở bên dưới cửa sổ Code Injection. Bạn sẽ được hỏi có chắc chắn muốn chèn mã hay không. Hãy nhấp Yes để xác nhận. Sau đó bạn có thể nhấp vào Yes hoặc No để mở mã mới trong công cụ tách. Nếu chèn mã thành công, giá trị trong trò chơi sẽ đối nghịch với hành động. Bạn sẽ có thêm đạn dược khi dùng vũ khí, thay vì bị giảm số đạn dược. Sức mạnh của nhân vật sẽ tăng lên thay vì giảm xuống khi bị đánh
Phần 7Phần 7 Phân biệt những đối tượng có chung mã
1Quét tìm giá trị mà bạn muốn dừng. Trong một vài trò chơi, nhiều đối tượng có mã giống nhau. Việc chèn mã cho một đối tượng sẽ ảnh hưởng đến tất cả đối tượng khác. Vì vậy, khi bạn “đóng băng” thanh sức mạnh của mình, bạn sẽ thấy thanh sức mạnh của tất cả đối thủ đều bị “đóng băng” theo. Trong trường hợp này, bạn cần tìm cách phân biệt những đối tượng và chỉ chèn mã gây ảnh hưởng cho đối tượng mà bạn muốn. Để chèn mã cho những đối tượng khác nhau, bạn cần biết một vài mã hợp. Tuy nhiên, việc tạo ngôn ngữ lập trình cơ bản cũng không quá khó.2Nhấp phải vào địa chỉ và nhấp vào Find out what writes to this address (Tìm yếu tố liên quan đến địa chỉ này). Khi bạn xác định địa chỉ của giá trị cần thay đổi hoặc dừng, hãy tìm ra yếu tố liên quan đến những địa chỉ đó bằng cách mở công cụ gỡ lỗi và xác định yếu tố liên quan. 3Chọn lệnh và nhấp vào Show disassembler (Hiển thị công cụ tách). Đây là lệnh được tô sáng khi bạn mở công cụ gỡ lỗi. Thao tác này cho bạn thấy lệnh trong công cụ tách mã. 4Nhấp phải vào lệnh trên cùng và nhấp vào Find out what addresses this instruction accesses (Tìm địa chỉ mà lệnh này truy cập). Màn hình liền xuất hiện cửa sổ hiển thị danh sách tất cả địa chỉ mà lệnh đó truy cập khi được liên kết với địa chỉ mới. 5Cho phép tất cả đối tượng trong trò chơi thay đổi giá trị. Bạn sẽ thấy danh sách tất cả những địa chỉ mà lệnh truy cập. Ví dụ, nếu muốn thanh sức mạnh dừng thay đổi, bạn có thể trở về trò chơi và để nhân vật của mình bị tấn công. Như vậy, lệnh truy cập địa chỉ đó sẽ hiển thị trong cửa sổ địa chỉ truy cập. Nếu bạn đánh đối thủ có cùng lệnh, thông tin cũng hiển thị trong danh sách của cửa sổ địa chỉ truy cập. 6Chọn tất cả địa chỉ trong danh sách của cửa sổ địa chỉ truy cập. Khi bạn có địa chỉ riêng của mọi đối tượng có cùng địa chỉ trong danh sách của địa chỉ truy cập, bạn chỉ cần nhấp và rê chuột để tô chọn tất cả. Hoặc, bạn có thể nhấp phải vào từng địa chỉ và nhấp vào Show register states (Hiển thị trạng thái đăng ký).7Phân tích cấu trúc dữ liệu của tất cả địa chỉ hiển thị. Hãy thực hiện những bước sau để phân tích cấu trúc dữ liệu của toàn bộ địa chỉ: Nhấp phải vào địa chỉ đã chọn.Nhấp vào Open disect data with selected addresses (Mở dữ liệu phân tích với địa chỉ đã chọn)Nhấp vào Ok. Nhập tên cho cấu trúc dữ liệu và nhấp vào Ok.Nhấp vào Yes (Có). Nhập dung lượng ban đầu của cấu trúc hoặc giữ nguyên, và nhấp vào Ok.8Tìm giá trị đồng nhất cho người chơi, nhưng khác biệt với đối tượng khác. Bất kể bạn tìm hiểu cấu trúc dữ liệu hay việc lưu trữ cho từng đối tượng, bạn cần tìm giá trị đồng nhất cho tất cả đồng minh, nhưng khác biệt cho đối thủ. Ví dụ, nếu Nhóm 1 có hai nhân vật, và Nhóm 2 có hai nhân vật do máy tính kiểm soát, nhân vật của Nhóm 1 được đại diện bằng giá trị 1, và Nhóm 2 có giá trị 2. Nếu bạn không tìm được giá trị đồng nhất cho đồng minh, nhưng khác biệt cho đối thủ, bạn có thể tự tạo. Chỉ cần nhấp phải vào một trong những giá trị (chẳng hạn như pointer), và nhấp vào Add Element (Thêm yếu tố). Chọn loại dữ liệu “4 Bytes” và nhập giá trị số offset chưa nhập cho giá trị nào nào khác. Số offset hiển thị bên trái bảng cấu trúc phân tích dữ liệu.9Ghi chú thông tin đăng ký cho giá trị. Cho dù bạn xem giao diện thông tin đăng ký hay giao diện phân tích dữ liệu, thông tin đăng ký luôn ở bên trái. Trong giao diện thông tin đăng ký, đó là thông tin đăng ký thật có liên quan đến lệnh (chẳng hạn như RSI, RDX, EDX, v.v.). Nếu bạn đang xem cấu trúc dữ liệu, thông tin đăng ký sẽ là số hoặc ký tự offset ở bên trái. 10Mở mẫu chèn mã mới cho lệnh. Trở về cửa sổ Memory Viewer và mở mẫu chèn mã mới cho lệnh liên quan đến địa chỉ khác. những bước thực hiện như sau: Nhấp vào chỉ dẫn trong cửa sổ Memory Viewer.Nhấp vào Tools (Công cụ) trong thanh trình đơn ở phía trên.Nhấp vào Auto Assembler (Công cụ sắp xếp tự động).Nhấp vào Template (Mẫu) trong thanh trình đơn ở phía trên.Nhấp vào Code Injection (Chèn mã). 11Tạo nhãn mới cho đối tượng mà bạn muốn thay đổi. những nhãn hiển thị ở phía trên mẫu chèn mã. Thêm nhãn mới cho đối tượng mà bạn muốn thay đổi ngay bên dưới nhãn hiện có. Để thêm nhãn, bạn chỉ cần nhập label và theo sau là tên của nhãn được đặt trong ngoặc đơn. Ví dụ, “label (người chơi)” hoặc “label (đối thủ)”. 12Tạo phần mới cho nhãn vừa tạo. Để tạo phần mới cho nhãn, bạn cần nhập tên nhãn và dấu hai chấm (:) ở phía trước hoặc sau mã gốc. 13Thêm mã vào nhãn làm thay đổi giá trị của đối tượng cần điều chỉnh. Việc này đòi hỏi bạn phải có một chút hiểu biết về mã hợp. Bạn cần thêm d
òng mã thay đổi giá trị cho đối tượng cần thay đổi theo cách mà bạn muốn thay đổi đối tượng đó. Tiếp theo, hãy thêm dòng lệnh đưa đến lối ra, mã gốc, và mã trở về. 14Tạo mã so sánh bên dưới “newmem”. Dòng lệnh “newmem:” trong mẫu chèn mã cho biết lệnh đang cần địa chỉ nhớ mới. Thông thường, dòng lệnh này ở trong mã gốc có nhãn (code:) hoặc (originalcode:). Dùng lệnh “cmp” để tạo dòng mã so sánh giá trị của những đối tượng khác nhau tại cơ sở dữ liệu hoặc cơ sở dữ liệu cộng với số offset. Ví dụ, nếu RDX với số offset 14 xác định nhóm người chơi từ nhóm máy tính, và nhóm người chơi có giá trị 1, bạn sẽ nhập cmp [rbx+14],1 để kiểm tra xem đối tượng đó có phải là người chơi hay không. 15Thêm dòng mã chuyển đến phần dành cho đối tượng mà bạn muốn thay đổi. Dùng lệnh “je” để chuyển đến phần dành cho lệnh so sánh. Ví dụ, nếu nhãn của bạn là “player”, hãy thêm dòng je player để chuyển đến phần người chơi nếu việc so sánh giá trị có liên quan đến người chơi. 16Thêm mã chuyển đến mã gốc. Sau khi tạo dòng mã chuyển đến phần dành cho đối tượng mà bạn muốn thay đổi, bạn cần thêm dòng mã chuyển đến mã gốc nếu giá trị không liên quan đến người chơi hoặc đồng minh. Dùng lệnh “jmp” để tạo dòng mã chuyển đến mã gốc ngay sau dòng mã chuyển đến mã gốc (hoặc loạt mã bạn tạo cho mục đích khác). Để đơn giản hóa thao tác, bạn không cần thêm nhãn mới. Hãy tạo mã so sánh ở cuối lệnh “newmen:” để phân biệt đồng minh và đối thủ. Thêm dòng mã chuyển đến lối ra nếu đó là đồng minh. Nếu đó là đối thủ, bạn sẽ chuyển lệnh đến mã gốc. Như vậy, khi người chơi hoặc đồng minh bị tấn công (hoặc dùng vũ khí đạn được, v.v.) sẽ không có gì thay đổi, nhưng nếu đối thủ bị tấn công, mã sẽ thực thi như thường lệ.17Nhấp vào Execute (Thực thi). Thao tác này thực thi mã vừa nhập. Nếu mọi thứ đều ổn, bạn sẽ có mã mới phân biệt giữa đồng minh và đối thủ. Sau đây là ví dụ bảng mã đơn giản mà bạn có thể dùng để phân biệt giữa đồng minh và đối thủ: alloc(newmem,2048,”Tutorial-x86_64.exe”+2EB6D)label(returnhere)label(originalcode)label(exit)label(player)//Nhãnmớidànhchongườichơi.newmem://Đâylàđịachỉnhớmới.cmp[rbx+14],1//Lệnhphânbiệtgiữathànhviênnhómđồngminhvànhómđốithủjeplayer//Lệnhchuyểnđếnphầnngườichơinếuđốitượngcótrongnhómngườichơi.jmporiginalcode//Lệnhchuyểnđếnmãgốcnếuđốitượnglànhómđốithủ.player://Lệnhtạophầnmớichonhómngườichơijmpexit//Lệnhchuyểnđếnlốithoátvàkhôngảnhhưởngđếnnhómngườichơi.originalcode://Đâylàphầnmãgốcmovss[rbx+08],xmm0//Lệnhthựcthilệnhgốc(dànhchonhómđốithủ)exit://Đâylàphầnkếtthúcđoạnmã.jmpreturnhere”Tutorial-x86_64.exe”+2EB6D:jmpnewmemreturnhere:
Phần 8Phần 8 Tìm hiểu Cheat Engine
1Tìm hiểu cách vận hành của Cheat Engine. Đây là chương trình có thể truy cập những mẫu dữ liệu được lưu trong bộ nhớ truy xuất ngẫu nhiên (RAM) của máy tính. Khi bạn dùng phần mềm, chẳng hạn như trò chơi, thông tin sẽ được chuyển từ bộ nhớ cố định như ổ cứng đến RAM. Từ đây, thông có thể được đọc và ghi. Chương trình Cheat Engine cho phép bạn quét thông tin lưu trữ trong RAM và thay đổi thông tin. 2Hiểu thuật ngữ. Cheat Engine xử lý rất nhiều mã máy tính cấp cao. Để dùng chương trình một cách dễ dàng, tốt nhất bạn nên tìm hiểu một vài thuật ngữ. Sau đây là những thuật ngữ dùng trong Cheat Engine: Value (Giá trị): Giá trị là mọi thông tin có số trong chương trình máy tính. Trong những trò chơi, giá trị có thể là phần trăm sức mạnh, số đạn dược hoặc số lượng vật thể mà bạn có. Chương trình Cheat Engine cho phép bạn quét tìm những biến và tạo sự thay đổi.Address (Địa chỉ): Địa chỉ là nơi lưu thông tin trong RAM. Đôi khi, vị trí của giá trị có thể thay đổi.Data Type (Loại dữ liệu): Loại dữ liệu cho biết cách dữ liệu được lưu. Đó có thể là bytes (chẳng hạn như 2 bytes, 4 bytes hoặc 8 bytes) và cũng có thể là float point hoặc double.Pointer: Đây là địa chỉ chứa giá trị liên quan đến một địa chỉ khác. Những địa chỉ này có thể thay đổi mỗi khi bạn tải trò chơi, hoặc khi đang chơi trò chơi.3Hiểu rằng Cheat Engine không dùng được trên nhiều trò chơi. Bạn không thể dùng Cheat Engine cho bất kỳ trò chơi nào có biện pháp chống “ăn gian” hoặc chức năng chơi nhiều người trực tuyến, và việc cố gắng dùng Cheat Engine thường khiến tài khoản hoặc hồ sơ của bạn bị cấm tham gia chơi trò chơi trực tuyến. Nếu bạn “vượt rào” và dùng Cheat Engine để lấy tài nguyên thường phải mua bằng tiền thật, bạn có thể bị buộc tội trộm cắp.Cheat Engine là phần mềm nổi tiếng, nên rất nhiều trò chơi có biện pháp ngăn chặn nó.4Biết trò chơi nào có thể dùng Cheat Engine. Bạn có thể dùng Cheat Engine cho những trò một người chơi đời cũ và trò một người chơi của hãng Steam, nhưng trò chơi phải có giá trị hiển thị trên màn hình để bạn có thể xem và thay đổi. Nhiều trò chơi trực tuyến không có kết nối với cộng đồng (chẳng hạn như không có nhiều người chơi và không có điểm cao) cũng tương thích với Cheat Engine
Lời khuyên
Bắt đầu với chỉ dẫn có tính tương tác trong Cheat Engine. Hãy thử áp dụng những kỹ năng này để trải nghiệm hết 9 bước.Cheat Engine hữu ích với việc thay đổi những yếu tố nhỏ của của trò chơi, còn việc cố gắng thay đổi những tính năng quan trọng có thể khiến trò chơi bị treo.Để dùng Cheat Engine hiệu quả, tốt nhất bạn nên tìm hiểu đôi chút về mã hợp.
Cảnh báo
Nếu dùng Cheat Engine trên VAC hoặc máy chủ khác có chế độ chống “ăn gian”, bạn sẽ bị cấm.Trên Roblox, bạn không thể hack bằng chương trình Cheat Engine, vì bạn sẽ bị “đá” khỏi trò chơi khi đang cố hack.