2009-06-04 30 views
10

Tôi chơi trò chơi trực tuyến World of Warcraft, chương trình tự động kiểm tra bộ nhớ được cấp phát của trò chơi để đọc thông tin trạng thái trò chơi/người chơi/thế giới, được sử dụng để chơi trò chơi một cách máy móc. Họ cũng đôi khi viết trực tiếp vào bộ nhớ của trò chơi, nhưng những người tinh vi hơn không, theo như tôi biết.Gian lận trong trò chơi trực tuyến: Có thể ngăn chặn một quá trình Win32 kiểm tra/thao tác bộ nhớ của người khác không?

Nhà cung cấp trò chơi, Blizzard Entertainment, có một ứng dụng riêng biệt được gọi là Warden mà nó được cho là phát hiện và vô hiệu hóa hack và cheats như thế, nhưng nó không bắt tất cả mọi thứ.

Có thể tạo ứng dụng Windows ở nơi bạn là người duy nhất có thể đọc những thứ bạn đã đọc trong bộ nhớ không?

Điều đó có thực dụng để thực hiện trên một ứng dụng C++ lớn chạy trên hàng triệu máy không?

+0

Câu hỏi hay, cảm ơn. – toto

Trả lời

20

Không thể hoàn thành. Các ứng dụng là lúc lòng thương xót của hệ điều hành khi nói đến truy cập bộ nhớ. Ai kiểm soát hệ điều hành sẽ kiểm soát truy cập vào bộ nhớ. Người dùng có toàn quyền truy cập vào toàn bộ máy, vì vậy họ luôn có thể bắt đầu quy trình với các đặc quyền được đặt để cho phép họ đọc từ không gian bộ nhớ của các quy trình khác.

này được giả định một môi trường 'thường xuyên' - phần cứng hiện nay, với một hệ điều hành đa năng cho phép nhiều chương trình đồng thời chạy vv

Hãy suy nghĩ về nó theo cách này - thậm chí cả máy đơn mục đích mà các nhà phát triển có toàn quyền kiểm soát trên phần cứng, với việc ký số và tất cả các thủ thuật có thể như XBox hoặc PlayStation không thể quản lý để giữ mã của bên thứ ba. Đối với một hệ điều hành đa mục đích, nó sẽ khó hơn gấp 10 lần.

+2

Có thể bảo vệ một không gian bộ nhớ của quy trình từ các quy trình khác trên Vista và mới hơn. Công nghệ này được gọi là "Protected Process" (http://msdn.microsoft.com/en-us/library/ms684880 (VS.85).aspx) và đây là cách Protected Media Path được triển khai. Công nghệ này, tất nhiên, không bảo vệ khỏi thể chất đọc bộ nhớ từ các chip bộ nhớ bằng các công cụ phần cứng, nhưng bảo vệ khỏi một quá trình gián điệp hoàn toàn tốt. – Rom

+4

Xem ví dụ http://www.alex-ionescu.com/?p=34 để biết công nghệ cụ thể này đã bị phá vỡ như thế nào. Bên cạnh đó, chạy bên trong một máy ảo và sửa đổi bộ nhớ từ đó là một chiến lược khác, như đã được đưa ra dưới đây.Quan điểm của tôi là bất kỳ chiến lược giảm thiểu nào sẽ bị phá vỡ bởi kẻ tấn công được xác định - đó là vốn có trong cấu trúc mở của phần cứng và hệ điều hành PC. Và loại kẻ tấn công, ví dụ: Khuôn mặt Blizzard được * rất * xác định, có tiền được thực hiện với vàng tự động thu hoạch. – Roel

4

Miễn là mã của bạn chạy trên máy tính của người dùng, người dùng sẽ tìm ra cách xâm nhập. Không có gì mà bạn có thể làm để ngăn chặn điều đó.

6

Và ngay cả khi bạn có thể làm điều đó, có khả năng chạy trò chơi trong máy ảo và sửa đổi RAM ảo từ máy chủ. Khách sẽ không bao giờ biết.

8

Nếu bạn muốn đạt được bảo mật thực, không chỉ tối nghĩa, điều này cần được thực hiện ở cấp hệ điều hành. Đây là một phần của những gì được gọi là Trusted Computing, một cái gì đó đã được nói về rất nhiều trong những năm qua nhưng không có tiến bộ thực sự đã được thực hiện (bạn có thể tìm kiếm cho Microsoft Palladium cho một ví dụ).

Nếu bạn cố gắng xem đây là một vấn đề mật mã với khóa riêng và khóa công cộng, hiện tại không có cách nào để ẩn khóa riêng tư mà bạn sử dụng trong ứng dụng của mình từ hacker. Khi hacker tìm thấy khóa riêng của bạn, anh ta có thể sử dụng nó để mô phỏng ứng dụng của bạn - và tất cả những gì bạn có thể làm là làm cho việc này trở nên khó khăn hơn.

Một số giải pháp một phần có thể có trong trò chơi nhiều người chơi, nơi một phần của trò chơi được chạy trên máy chủ. Bạn có thể sử dụng thực tế là hacker không có quyền truy cập vào máy chủ và do đó máy chủ có thể thực hiện các hoạt động bằng khóa riêng của mình mà hacker không thể nhận được. Điều này có thể giúp một số tình huống, nhưng nó không phải là một giải pháp chung.

6

Có tồn tại một cuốn sách thú vị về chủ đề đó:

Khai thác Trò chơi trực tuyến: Gian lận Systems Massively Distributed (ISBN-10: 0132271915 hoặc ISBN-13: 978-0132271912)

Vấn đề là có không chỉ là mối đe dọa của các chủ đề/ứng dụng khác mà còn từ cấp độ hạt nhân.Có những chương trình làm việc cùng với một cái gì đó giống như một bộ gốc để ẩn khỏi phần mềm phát hiện.

4

Có, bạn có thể làm điều đó, nếu bạn có thể đủ khả năng để chạy chỉ trên Vista và sau đó. Xem chương "Quy trình được bảo vệ" trong this bài viết.

+0

Dường như để có thể tạo quy trình được bảo vệ, bạn cần có chữ ký số (và giấy phép) đặc biệt trước tiên. Xem http://www.alex-ionescu.com/?p=34 – Suma

8

Warden không phải là một ứng dụng riêng biệt và cũng không cố gắng vô hiệu hóa hack theo bất kỳ cách nào. Cấu trúc của nó về cơ bản là tương đương với một trojan mà kéo xuống (lý thuyết đáng tin cậy) mã từ một vị trí được biết đến và sau đó chạy nó. Mã này hơn là thực hiện các kiểm tra khác nhau (phần lớn trong số đó là các vị trí băm trong bộ nhớ để phát hiện các bản vá lỗi cho những thứ như trình xử lý sự kiện bot) để đánh dấu một tài khoản là 'đáng ngờ'. Blizzard chờ đợi cho đến khi họ có đủ số lượng các tài khoản 'đáng ngờ' và thực hiện một làn sóng cấm (có một số ngoại lệ đáng chú ý, có thể dẫn đến lệnh cấm ngay lập tức), nhưng chúng được nhắm mục tiêu theo các hacks đã biết cụ thể như Glider hoặc D2JSP trong Diablo II, không phải cho gian lận chung).

Điểm của tôi trong việc giải thích điều này là gấp đôi: Trước hết, bạn nên biết rằng Warden là rất không an toàn bởi thiết kế. Bạn đang cấp cho ai đó sức mạnh để thực thi các lệnh x86 tùy ý trên máy của mình, có khả năng với quyền truy cập quản trị viên đầy đủ nếu bạn đang sử dụng Windows. Có tồn tại các cài đặt lại riêng của mã máy chủ Warden được triển khai trên các máy chủ được mô phỏng riêng và các có thể này độc hại. Tôi nói điều này như một người đã viết mô-đun Warden tùy chỉnh. Thứ hai, và phù hợp hơn với câu hỏi như đã nêu, Warden không phải là một công cụ phòng chống, nó là một công cụ trừng phạt và một cuộc xâm lược lớn của sự riêng tư. Nếu bạn là một nhà phát triển trò chơi đang tìm cách triển khai một hệ thống tương tự, tôi khuyên bạn nên chống lại nó vì nó sẽ mở nhiều lon sâu và sẽ vẫn không thành công. Vì nó liên quan đến việc nạp mã động, có rất nhiều cách để sửa nó, rất nhiều trong số đó sẽ khó tìm thấy trong thử nghiệm tiêu chuẩn. Warden sang một bên, nỗ lực thực sự duy nhất của Blizzard để ngăn chặn hacks được thực hiện trong WoW là nỗ lực của họ để ngăn chặn Lua plugins làm bất cứ điều gì gần với botting (và thậm chí chas này đã được phá vỡ nhiều lần). Và như những người khác đã nói, về cơ bản là không thể ngăn chặn hacks, ngay cả với một hệ thống năng động như Warden. Ngay cả khi không chạm vào bộ nhớ của trò chơi, các gói và đọc màn hình là quá đủ để tạo bot nâng cao (xem mm.BOT và RedVex hoặc bất kỳ chương trình AutoIt cũ nào hoạt động hoàn toàn trên phát hiện pixel).

Cách tốt nhất để ngăn chặn chương trình, trong trò chơi hoặc cách khác, vẫn là sử dụng CAPTCHA của một số loại. Tuy nhiên, nó không phải là một hình ảnh méo mó. Có nhiều cách để tích hợp các thử nghiệm của con người hoặc AI vào các trò chơi ít nhất là một chút minh bạch đối với người dùng hợp pháp. Nếu bạn làm cho hệ thống đủ mô-đun, bạn sẽ có thể thực hiện cập nhật nhanh hơn nhiều so với bất kỳ bản phát hành công khai nào sẽ quan tâm để cập nhật mã của họ.

2

Trò chơi Runescape - một MMO dựa trên trình duyệt - đang chiến đấu trong trận thua (thua) trong thời gian dài nhất. Nỗ lực đầu tiên của họ là CAPTCHA sẽ phải được nhập vài phút một lần trong khi chơi. Nỗ lực thứ hai của họ là các bài kiểm tra đồ họa khác nhau mà có thể phải được thông qua bởi người chơi. Nỗ lực cuối cùng của họ là dịch chuyển người chơi từ những gì họ đang làm mỗi lần trong một thời gian, và buộc họ phải giải quyết một câu đố.

Mỗi người trong số đó làm việc trong một thời gian ngắn, nhưng cuối cùng mọi người đều bị nứt và được giải quyết bằng máy.

+0

Phần mềm phát hiện chữ viết tay của dịch vụ bưu chính thực sự làm cho ít sai lầm hơn con người. Điều này nói với tôi rằng cuối cùng CAPTCHAs sẽ phải trở nên phức tạp đến nỗi những người giải quyết tự động sẽ có thể làm cho chúng chính xác thường xuyên hơn một con người. – AaronLS

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