2012-01-18 37 views
7

Trong trò chơi iphone "Tiny Tower", tôi đoán nó sử dụng một số loại mô phỏng dựa trên thời gian dành cho lần chơi cuối cùng và thời gian hiện tại, bởi vì bạn có thể đặt thời gian hiện tại về phía trước và bạn sẽ nhận được lợi ích từ khoảng thời gian trôi qua giả.Làm thế nào để ngăn chặn gian lận dựa trên thời gian trên một trò chơi mô phỏng dựa trên thời gian?

Có một thuật toán mà tôi có thể sử dụng để ngăn chặn điều này không? (Hoặc ít nhất khiến người dùng trung bình khó khăn để kéo ra!)

Chỉnh sửa: cảm ơn, tôi hiểu rằng, mặc dù từ ngữ của tôi, không có cách nào để ngăn những thứ bạn lưu trữ ở phía khách hàng nhưng tôi muốn làm cho nó ít nhất là khó khăn hơn "thay đổi thời gian" để hack nó!

+3

Bất kỳ thời gian chính xác nào dựa vào biến mà người dùng có thể thay đổi, có khả năng tham nhũng. – corsiKa

+0

Ya, tôi không biết các tài liệu như thế nào nếu có ít nhất là cách để làm cho mọi việc khó khăn hơn .. – Timmy

Trả lời

4

Các gamecube có một cách để làm điều này vì vậy nó phải thực hiện được.

Có sự kiện được kích hoạt khi thời gian iphone được đặt là không? Trong trường hợp đó bạn có thể phản ứng điều đó.

Một giải pháp khác là yêu cầu trực tuyến khi trò chơi được khởi chạy, theo cách này bạn có thể kiểm tra thời gian trên máy chủ từ xa.

Bạn cũng có thể kiểm tra xem bạn có sự kiện khi đăng nhập điện thoại hay đánh thức phản ứng với sự kiện đó, tiết kiệm thời gian tại thời điểm đó trong DB của bạn. Bạn sẽ có thời gian không sửa đổi cuối cùng.

Bí quyết cuối cùng có thể là kiểm tra tệp bạn biết sẽ được sửa đổi bởi một hành động trước khi thay đổi thời gian (chẳng hạn như đăng nhập) và kiểm tra ngày 'sửa đổi lần cuối'.

Bạn cũng có thể điều tra theo hướng GPS. Một GPS cần phải được đồng bộ với vệ tinh mà nó liên lạc, vì vậy nó phải theo dõi thời gian theo một cách nào đó, và có thể có một API cho điều đó.

Thật không may là bạn đang sử dụng iPhone, điều đó có nghĩa là khả năng của bạn bị hạn chế vì các ứng dụng có rất ít quyền và được sandboxed.

EDIT:

Mặc dù vậy, bạn có thể tạo sự kiện trong lịch iphone không? Và kiểm tra xem nó đã được trigered? Vì bạn có thể đặt một cuộc họp giả hoặc một cái gì đó cho mỗi ngày. Không sạch sẽ, nhưng sáng tạo.

EDIT 2: bạn có thể đặt bộ tính giờ làm mã để IOS thực thi trong 60 phút không? Nếu bạn có thể, hãy đặt bộ hẹn giờ này, vượt qua thời gian dự kiến ​​là khi mã này chạy, sau đó khi mã chạy, hãy so sánh và thông báo cho chương trình của bạn.

+0

cảm ơn, sẽ xem xét các thủ thuật này ..;) – Timmy

2

Một cách để ngăn chặn nó là theo dõi thời gian trôi qua bằng cách kiểm tra dấu thời gian cho thông tin đăng nhập của họ trong cơ sở dữ liệu. Nó không quan trọng nếu thời gian của iPhone của khách hàng là tắt; cơ sở dữ liệu trên đầu của bạn sẽ vẫn biết nó được kéo dài bao lâu kể từ lần đăng nhập cuối cùng.

1

gọi dịch vụ web để nhận thời gian, thay vì dựa vào điện thoại. Có một số nơi bạn có thể nhận được thời gian từ, google là bạn của bạn tôi chắc chắn, hoặc tạo ra một mình, và sử dụng thời gian địa phương của máy dịch vụ chạy trên cho thời gian.

Bạn cũng có thể sử dụng Network Time Protocol (NTP) servers để có được một thời gian phù hợp

1

Tôi nghĩ nếu bạn có quyền truy cập internet, bạn có thể dành thời gian từ máy chủ.

Giải pháp thứ hai: Bạn có thể ghi lại "datetime" và mỗi khi bạn thấy sự khác biệt "BIG" giữa thời gian ghi và thời gian chạy bạn biết có thể có vấn đề. nhưng điều này không thanh lịch, tôi biết.

Bạn cũng có thể ghi lại một lượng nhỏ thời gian dữ liệu mà ứng dụng đã bắt đầu và kiểm tra sự khác biệt với thời gian chạy.

Ngoài ra, bạn có thể sử dụng "Hoạt động" -> "Thời gian chờ" để "Cập nhật" (các cấp vv) không thể được thực hiện lại.

Vì hệ thống Ngày giờ có thể được thay đổi bởi người dùng, có khả năng "hack".

+0

Ya, tôi không quá lo lắng về trò chơi bị tấn công mỗi se .. người dùng năng động sẽ làm điều đó .. chỉ muốn làm cho nó ít nhất là đủ cứng cho hầu hết người dùng bình thường! – Timmy

+0

Đủ cứng cho hầu hết người dùng bình thường? Bằng cách sử dụng phương pháp trên tôi nghĩ rằng nó là đủ cứng. (Giải pháp thứ hai) – Sanosay

Các vấn đề liên quan