0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Sử Dụng Cheat Engine Để Giải Quyết Các Thử Thách GamePwn Trên Hackthebox

Đăng vào 3 tuần trước

• 4 phút đọc


Mở Đầu


Trong bài viết này, chúng ta sẽ cùng khám phá cách sử dụng Cheat Engine (CE) để giải quyết những thử thách trên nền tảng Hackthebox, đặc biệt là trong danh mục GamePwn. Các thử thách này được thiết kế để giúp người học tương tác và cải thiện kỹ năng hacking thông qua các trò chơi.

Trong phần này, chúng ta sẽ chỉ thực hiện các thử thách dành riêng cho hệ điều hành Windows do việc Cheat Engine chưa có phiên bản cho Linux. Hãy cùng tìm hiểu và thực hành để nâng cao kỹ năng cùng Cheat Engine nhé!


Thử Thách 1: CubeMadness1


Thử thách đầu tiên là CubeMadness1, một trò chơi đồ họa đơn giản. Nhiệm vụ của người chơi là chạm vào các biểu tượng greenbox để tăng điểm. Tuy nhiên, việc chơi theo cách thông thường sẽ không cho phép người chơi đạt điểm tối thiểu là 20 điểm.

Mục tiêu rõ ràng của đề bài là yêu cầu chúng ta tìm cách để đạt được 20 điểm. Bước đầu tiên, tôi khởi động Cheat Engine, gắn vào tiến trình của CubeMadness1 và quét địa chỉ của số điểm hiển thị. Sau khi tìm thấy địa chỉ, tôi đã sửa đổi giá trị thành 20 và flag xuất hiện. Thử thách này mang tính khởi động, không quá phức tạp.


Thử Thách 2: CubeMadness2


Khi tiếp cận thử thách CubeMadness2, tôi nhận thấy rằng trò chơi khá giống với thử thách CubeMadness1. Tôi thử nghiệm các bước tương tự nhưng không thể sửa giá trị của điểm hiển thị. Cụ thể, khi tìm địa chỉ của điểm số, tôi phát hiện ra hai địa chỉ giống nhau nhưng cố gắng sửa đổi giá trị tại cả hai địa chỉ này đều không mang lại kết quả mong muốn.

Vấn đề nằm ở việc game liên tục cập nhật giá trị điểm hiển thị và ghi đè lên những thay đổi mà tôi thực hiện. Để tìm hiểu thêm, tôi đã sử dụng chức năng Find out what writes to this address trên Cheat Engine để khám phá đoạn mã đang thay đổi giá trị điểm.

Sau khi điều tra, tôi nhận thấy game sử dụng một đoạn mã để cập nhật điểm số. Tôi đã thử thay thế đoạn mã này thành do nothing và thành công tại việc thay đổi điểm số hiển thị trên game. Tuy nhiên, khi tôi lần nữa gõ 20 và ăn một box, điểm số hiện trên màn hình chỉ đạt 20/20 nhưng không có flag xuất hiện, điều này cho thấy tôi cần phải điều chỉnh một biến khác.

Qua tìm hiểu đoạn mã, tôi phát hiện rằng game thực sự lưu trữ một giá trị ẩn khác để tính toán số điểm. Sau một quá trình phân tích tỉ mỉ mã nguồn, tôi tìm thấy rằng giá trị của 16D7CEA2A60 có thể được điều chỉnh trực tiếp. Khi ăn một box, giá trị này được tăng lên một mức cố định, cụ thể là score*1337. Như vậy, tôi thay đổi giá trị tại địa chỉ này thành 20*1337=26740 và flag mới xuất hiện.


Tìm Hiểu Về Các Thanh Ghi (Registers)


Để hiểu rõ hơn về cách game hoạt động và các thao tác mà chúng ta đã thực hiện trong CubeMadness2, tôi muốn giới thiệu một số thanh ghi quan trọng trong CPU. Chúng giúp chúng ta theo dõi thông tin và dữ liệu mà CPU sử dụng để thực hiện phép toán.

Dưới đây là một vài thanh ghi cơ bản:

  • RAX (64-bit) / EAX (32-bit): Lưu trữ kết quả của các phép toán số học.
  • RBX (64-bit) / EBX (32-bit): Thường được dùng để lưu dữ liệu hoặc địa chỉ.
  • RCX (64-bit) / ECX (32-bit): Sử dụng làm thanh ghi đếm trong các vòng lặp.
  • RDX (64-bit) / EDX (32-bit): Thường chứa tham số cho các hàm.
  • RSI (64-bit) / ESI (32-bit): Thanh ghi nguồn cho dữ liệu cần xử lý.
  • RDI (64-bit) / EDI (32-bit): Thanh ghi đích để ghi dữ liệu.
  • RSP (64-bit) / ESP (32-bit): Quản lý ngăn xếp của chương trình.
  • RBP (64-bit) / EBP (32-bit): Lưu trữ địa chỉ của khung ngăn xếp hiện tại.

Hiểu rõ về các thanh ghi này sẽ giúp bạn nắm bắt tốt hơn về việc game quản lý và cập nhật các giá trị trong quá trình chơi. Kỹ năng đọc và phân tích mã máy sẽ là công cụ cần thiết giúp đạt được thành công trong các thử thách tiếp theo.


Kết Luận


Qua hai thử thách CubeMadness1 và CubeMadness2, chúng ta đã áp dụng Cheat Engine để điều chỉnh các giá trị trong game một cách hiệu quả. Kinh nghiệm từ CubeMadness1 cho thấy rằng việc sửa đổi điểm số có thể khá đơn giản, trong khi CubeMadness2 đã mang tới thử thách lớn hơn yêu cầu kiến thức về logic và kỹ thuật debug.

Hi vọng rằng bài viết này đã cung cấp cho bạn những kiến thức bổ ích và thú vị khi khám phá thế giới hack game. Đừng ngần ngại tiếp tục khám phá và chinh phục các thử thách khác trên Hackthebox để nâng cao kỹ năng của bản thân nhé!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào