Mở Đầu
Trong bài viết này, chúng ta sẽ tiếp tục hành trình khám phá Cheat Engine với phần 4 của tutorial game đồ họa. Sau khi hoàn thành bước 9 trong bài học CE trước đó, chúng ta sẽ được chuyển sang một quy trình mới có tên CE Game Tutorials
. Đây là một tính năng mới trong phiên bản gần đây của Cheat Engine, bao gồm 3 thử thách thú vị được thiết kế như một game thực thụ, không còn nhàm chán với chỉ chữ và nút bấm đơn điệu.
Bài viết này sẽ hướng dẫn bạn giải quyết hai thử thách đầu tiên một cách chi tiết và dễ hiểu.
Thực Hành Thử Thách 1: Bắn Hạ Mục Tiêu Bất Tử
Thử thách đầu tiên đòi hỏi chúng ta phải bắn hạ một bia mục tiêu có hình dạng tròn, đứng trên cùng và một con tàu vũ trụ ở dưới. Bạn có thể sử dụng phím space
để bắn đạn, nhưng số lượng đạn có hạn. Nếu bạn bắn hết 5 viên đạn, bạn sẽ phải chờ nạp lại để tiếp tục tấn công. Trong khi đó, bia mục tiêu sẽ hồi phục hoàn toàn khi ở trạng thái nạp đạn. Điều này khiến cho việc tiêu diệt mục tiêu theo cách thông thường trở nên khó khăn.
Để vượt qua chế độ miễn nhiễm của bia, bạn có thể điều chỉnh HP của nó. Để tìm địa chỉ chứa HP, bạn sẽ tiến hành các bước sau:
- Trong Cheat Engine, thực hiện First Scan với giá trị Unknown initial value.
- Bắn một viên đạn để làm giảm HP của bia.
- Thực hiện Next Scan với giá trị Decreased value.
- Tiếp tục với Increased value nếu mục tiêu hồi phục HP.
- Lặp lại cho đến khi tìm được địa chỉ chứa HP.
- Thêm địa chỉ này vào Cheat Table và thay đổi giá trị HP thành 1.
Khi bắn viên đạn thứ nhất, bia sẽ bị tiêu diệt ngay lập tức.
Thực Hành Thử Thách 2: Chiến Đấu Với Đối Thủ
Trong thử thách thứ hai, bạn tiếp tục điều khiển tàu vũ trụ của mình và giờ có thể tiến lên bằng phím W
. Đối thủ là hai tàu khác với HP lớn hơn, và khi bạn bắn, chúng cũng sẽ bắn trả và gây gấp đôi sát thương cho bạn.
Ban đầu, bạn có thể thử tìm HP của mình để sử dụng tính năng freeze. Tuy nhiên, nếu tiêu diệt một đối thủ, máy bay còn lại sẽ kích hoạt một quả bom mega với sát thương vô hạn. Điều này khiến cho cách freeze HP không còn hiệu quả. Thay vào đó, bạn sẽ cần sử dụng code injection để điều chỉnh logic cập nhật HP của mình.
Hãy thực hiện các bước sau để không bị mất HP:
- Click chuột phải vào địa chỉ HP của tàu và chọn Find out what write to this address.
- Khi bị bắn mất máu, tìm đoạn code
sub [rax+60],edx
và thực hiện Replace do nothing để cả bạn và kẻ địch không nhận sát thương. - Tuy nhiên, bạn cần phân biệt giữa mình và đối thủ, vì vậy hãy sử dụng tính năng Commonality scanner của Cheat Engine để xác định
teamId
và địa chỉ của nó, từ đó viết mã assembly để injec vào game.
Dưới đây là đoạn mã code mình đã dùng trong thử thách này:
assembly
[ENABLE]
alloc(newmem,2048,"gtutorial-x86_64.exe"+400E3)
label(returnhere)
label(mylogic)
label(enemylogic)
label(exit)
newmem:
cmp [rax+70],0
je mylogic
jne enemylogic
jmp exit
enemylogic:
sub [rax+60],edx
ret
add [rax],al
mylogic:
ret
add [rax],al
exit:
jmp returnhere
"gtutorial-x86_64.exe"+400E3:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"gtutorial-x86_64.exe"+400E3:
db 29 50 60 C3 00 00
Mã code này cho phép bạn thực hiện thử thách một cách dễ dàng hơn. Tuy nhiên, để làm cho gameplay thú vị hơn và nhanh chóng hơn, bạn có thể thay thế sát thương của tàu địch bằng một giá trị cố định như 9.
Kết Luận
Bài viết này đã trình bày các phương pháp mình đã dùng để giải quyết hai thử thách đầu tiên trong Cheat Engine Graphic Game Tutorial. Tất nhiên, còn nhiều cách khác mà bạn có thể khám phá để làm quen với Cheat Engine.
Đừng quên tham khảo mã nguồn từ repository trên GitHub để học hỏi thêm, và hãy nhớ rằng các nghiệm pháp sẽ khác nhau tùy vào từng game. Hãy kiên nhẫn và tiếp tục tìm hiểu để nâng cao kỹ năng IT của bạn!
Chúc bạn thành công trong việc chinh phục những thử thách trong Cheat Engine!
source: viblo