Cheat Kim Cương trên Me.Zing

Standard

Thông tin

Dù là game trên web nhưng thực chất là dạng download toàn bộ các file cần thiết về máy, và có một kết nối với server để lưu giữ điểm số khi kết thúc game. Do vậy, việc cheat là hoàn toàn có thể.

Cheat điểm số
Thường thì cheat điểm số là khá đơn giản, và hầu như ai cũng làm được. Tuy nhiên với Kim Cương (hay Bejeweled Blitz, viết tắt là KC) thì có những khó khăn nhất định. Lý do chính bởi KC dùng tới những 3 biến để lưu điểm (có thể nhiều hơn, đại khái là vậy) – 1 biến lưu chính xác giá trị điểm là nScore, 1 biến lưu giá trị (nScore * 256) và 1 biến lưu giá trị (nScore * 256 ^ 2). Không biết rằng Popcap làm điều này với mục đích gì, nhưng nếu hiểu rằng để anti-cheat thì có thể như sau:

  • Tạo 1 biến boolean là bNewScore.
  • Khi người chơi ghi điểm, thực hiện lần lượt các bước:
  • bNewScore = 1
  • Cập nhật giá trị cho các biến 1, 2 và 3 nêu ở trên.
  • bNewScore = 0
  • Trong quá trình chơi, thực hiện việc kiểm tra với tần số tương đối lớn: Nếu bNewScore = 0 ~> kiểm tra sự ràng buộc giá trị của các biến: Nếu không thỏa mãn ~> gian lận smile_sad

Dẫu vậy, Popcap có nhiều cách khác để kiểm soát giá trị thực của điểm số, vì như ta thấy, trong quá trình chơi mỗi lần ghi điểm thì tổng điểm sẽ hiện lên ~> hoàn toàn có thể lưu trữ các giá trị này và cộng dồn khi kết thúc trò chơi. Điều này giải thích cho trường hợp bạn cheat điểm, giá trị hiển thị có thể là 1.000.000, nhưng cuối cùng lại chỉ là 100.000 chẳng hạn smile_embaressed
Sơ qua về vấn đề điểm số như vậy, ta qua một hướng khác đơn giản hơn: cheat thời gian – mà cụ thể là làm chậm thời gian >:)

Cheat thời gian
Tôi dùng Cheat Engine để làm việc này (bạn có thể dùng một soft khác – tất nhiên Hot smile). Khi thử thay đổi speed thành 0.5, tôi phát hiện ra rằng có một trở ngại như sau:

9-26-2010 19-11-30

Một thời gian dài tôi đã cố gắng debug, tìm cách pass cái badboy đáng ghét này, để rồi thất bại =(( Sự thật thì nhiều khi chúng ta suy nghĩ quá phức tạp, và quan trọng hóa vấn đề một cách rất ngớ ngẩn😦
Trở lại vấn đề chính, vì sao khi ta hack speed, thì game lại có thể detect?  Câu trả lời chỉ có một: Game lấy thời gian của hệ thống để so sánh. Minh họa như sau:

  • Bắt đầu game, lấy thời gian hệ thống, lưu vào nTimeStart.
  • Kết thúc game, lấy thời gian hệ thống, lưu vào nTimeEnd.
  • Xét mối liên quan giữa nTimeStart và nTimeEnd để đi đến kết luận. (*)

Quả thật là vậy, khi tôi không cheat nữa, mà thay đổi giờ hệ thống trong quá trình chơi, game đưa ra badboy ~> Vấn đề về cơ bản đã được giải quyết😡

Ngoài lề

Nếu có hứng thú tìm hiểu thêm một chút, ta dễ dàng thấy rằng (*) có dạng:

  • Nếu (nTimeEnd – nTimeStart) > x ~> gian lận.

x ở đây là một giá trị nào đó, theo logic thì sẽ > 60s – vì trong quá trình chơi có 1 vài giai đoạn pause timer để xử lý đồ họa khi người dùng ăn các ô đặc biệt. Và bởi vì việc so sánh không lấy theo trị tuyệt đối, nên việc nTimeEnd = 9h00 và nTimeStart = 9h05 vẫn được chấp nhận, khiến cho việc cheat của ta trở nên “dễ thở” hơn ;))

9-26-2010 19-22-11


7 thoughts on “Cheat Kim Cương trên Me.Zing

  1. bạn có thể hướng dẩn cụ thể hơn cho mình qua yahoo được không bạn,mình đọc mà khôn hiu được hjx , làm cách nào cũng ko lưu điểm dc

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s