Tại sao chỉnh sửa bộ nhớ của khách hàng trong một số MMO cho phép họ gian lận?


19

Tại sao chỉnh sửa bộ nhớ của máy khách trò chơi hoạt động? Tại sao rất nhiều công cụ "Hack bảo vệ" đến với khách hàng?

Nếu tôi thiết kế một trò chơi máy chủ-máy khách, mọi thứ sẽ xảy ra tại máy chủ (mô phỏng thế giới trò chơi) và khách hàng sẽ chỉ là những người tiêu dùng thụ động nhận được cập nhật trạng thái của một phần của thế giới gần các nhân vật của họ, chỉ gửi một số thông tin như tổ hợp phím hoặc lệnh di chuyển / hành động. Có thể tôi thiếu một cái gì đó ở đây, nhưng với thiết kế đó, bất kỳ hack nào như tăng STR của tôi lên 200 trong bộ nhớ máy khách (nếu giá trị hiện diện hoàn toàn), sẽ không có hiệu lực.

Giải thích duy nhất tôi có thể nghĩ là các trò chơi trong đó hoạt động chỉnh sửa bộ nhớ cho phép các phần của mô phỏng chạy trong máy khách và máy chủ sau đó chỉ cần đồng bộ hóa tất cả các máy khách theo định kỳ. Tôi có thể hiểu rằng thiết kế cho các trò chơi Chiến lược thời gian thực với số lượng người chơi cố định một khi trận đấu được định cấu hình, nhưng, tại sao trong MMORPG? Nó có phải là một chiến lược để giảm tải máy chủ?


2
Cũng như tải máy chủ, cũng có một vấn đề về độ trễ. Ví dụ, Minecraft xử lý tất cả các chuyển động phía máy khách đơn giản vì đó là giải pháp đơn giản nhất (ngoài chuyển động phía máy khách thuần túy, dự đoán phía máy khách hoặc chuyển động chậm). (Minecraft không có khung dự đoán vì thông thường đây là một trò chơi có nhịp độ chậm, do đó, việc dự đoán chuyển động sẽ rất nhiều công việc và có thể không đáng tin cậy)
user253751

Câu trả lời:


21

Mặc dù lý tưởng, nhưng thực tế không thể xác thực mọi đầu vào đơn lẻ đối với máy chủ, cả về tải trọng tính toán và độ trễ trong xác nhận đầu vào cho máy khách.

Do đó, thường có một số điều không được xác thực trên máy chủ trong nhiều MMO. Trong một số trường hợp, điều này bao gồm một số lớp chuyển động của nhân vật, đó là lý do tại sao dịch chuyển tức thời và hack tốc độ tồn tại. Các biện pháp bảo vệ phía khách hàng giúp cung cấp thêm một rào cản đối với các vụ hack đó, mặc dù tất nhiên với đủ thời gian chúng có thể được bỏ qua. Để chống lại điều này, nhiều trò chơi như vậy sẽ sử dụng chiến lược ghi nhật ký và xác minh sau thực tế và luân chuyển các biện pháp bảo vệ thực tế được sử dụng.

Ngoài ra còn có vấn đề về màn hình các hack đột nhập bộ nhớ đơn giản khác có thể đối chiếu thông tin và truyền phím nhấn và các đầu vào khác qua máy khách nhanh hơn so với con người thường có thể phản ứng. Hoặc họ có thể tìm kiếm thông tin có thể được truyền tới khách hàng nhưng chưa nhất thiết phải nhìn thấy (chẳng hạn như vị trí của các sinh vật ở gần nhưng chưa được hiển thị ở bất kỳ đâu, như thường thấy trong các bản hack Diablo đầu tiên).


Điều đó sẽ giải thích sự quan tâm đến việc xem xét trí nhớ và sự quan tâm của khách hàng trong việc ngăn chặn điều đó xảy ra. Bản hack dịch chuyển tức thời tôi từng thấy trong trò chơi cuối cùng tôi chơi.
Hatoru Hansou

2
Điều thú vị là trò chơi Ark: Survival Evolve cho biết họ có mọi thứ được xác thực trên máy chủ (xuống đến đầu vào, iirc). Không chính xác là MMO loại WoW nhưng nó hỗ trợ các máy chủ 70ppl ở dạng alpha (cộng với hàng tấn khủng long npc và cấu trúc do người chơi xây dựng). Bạn chắc chắn có thể cảm thấy độ trễ nhưng nó đang trở nên tốt hơn. Tôi tưởng tượng rằng điều này sẽ ngày càng trở nên phổ biến hơn khi công nghệ trở nên tốt hơn.
sledtoad

5
"70 người" ít nhất là một thứ tự cường độ (một số, trên thực tế) ít người hơn trên mỗi máy chủ so với các MMO tôi đã làm việc được hỗ trợ. Cũng cần lưu ý rằng gần như tất cả mọi người nói rằng họ làm mọi thứ trên máy chủ, chỉ đơn giản là một cách không cho tin tặc phát triển các bản hack.

@slicedtoad Tôi sắp đề cập đến điều đó. Lưu ý rằng vì hầu hết các MMO đều sử dụng instaging, vì vậy phương pháp ARK có thể hoạt động bên trong các MMO. Nó chỉ không khả thi (chưa) để làm điều này cho số lượng lớn người chơi.
Mast

10

Một trong những lý do tại sao có sự bảo vệ là việc đọc trạng thái trò chơi có thể cho phép các bot biết trạng thái của trò chơi và hành động tương ứng.

Chẳng hạn, nghiền trong MMO: nếu "bot" biết mob là gì xung quanh, nó có thể gửi lệnh cho khách hàng trò chơi để chọn mob, đánh cho đến khi hết 0, nhặt loot, rửa và lặp lại. Với điều này, ngay cả khi tất cả các thay đổi đối với mô phỏng được thực hiện / xác nhận phía máy chủ, một số người chơi có thể gian lận. Các lệnh có thể được gửi qua nhấp chuột giả hoặc nhấn phím hoặc thông qua ghi bộ nhớ.

Đây là một trong những lý do tại sao MMO sử dụng bảo vệ bộ nhớ.


Ok, bot có ý nghĩa hơn, ngay cả khi bạn không thể đặt mình vào chế độ thần, có một chương trình làm mọi thứ cho bạn cũng là gian lận. Nhưng, tại sao "tin tặc" trong trò chơi tôi đang chơi có thể giết trong một đòn duy nhất? Không phải đó là một dấu hiệu chỉnh sửa bộ nhớ trò chơi và máy chủ bằng cách nào đó xác nhận những thay đổi đó.
Hatoru Hansou

1
@HatoruHansou Vâng. Và điều khó chịu là bot không người lái có thể tự chạy, vì vậy hãy tưởng tượng một nhóm 10 máy tính được theo dõi bởi một nhân viên nông dân vàng, nhân vật trực tuyến và hoạt động 24 giờ mỗi ngày .... MMO của bạn bị hủy hoại. Một số người thậm chí sẽ có cách xử lý đặc biệt cho những người chơi khác ("Đừng ở trên sân của tôi, đây là phòng của tôi " (đã ở đó .. Lineage II ngay từ đầu)).
Vaillancourt

Hãy để dân số bot phát triển mà không kiểm soát và trò chơi của bạn có thể sẽ ngừng hoạt động. Ok, chỉ riêng bot là đủ để biện minh cho việc bảo vệ chống hack. Tôi sẽ đợi một lúc lâu hơn trước khi chấp nhận câu trả lời.
Hatoru Hansou

@HatoruHansou chắc chắn :) Tôi không chắc chắn tôi có tất cả các lý do để bảo vệ bộ nhớ dù sao :)
Vaillancourt

6

Nhiều MMO được thiết kế với dự đoán hit phía khách hàng. Vì vậy, nếu có một lần truy cập vào máy khách, nó sẽ gửi kết quả đó đến máy chủ rằng có một lần truy cập. Trong trường hợp này, máy chủ không thực sự có thẩm quyền, và do đó gian lận là có thể.

Thành thật mà nói, nếu tôi đang thiết kế MMO, tôi sẽ làm cho máy chủ có thẩm quyền hoàn toàn, với máy khách chỉ gửi các giá trị đầu vào được kẹp vào máy chủ và máy chủ giải quyết kết quả.

Về lý do tại sao điều này chưa được nhiều MMO thực hiện, tôi chỉ có thể nghĩ đến tải máy chủ bổ sung và 'độ trễ phản hồi' đi kèm với việc có một máy chủ có thẩm quyền hoàn toàn, vì nó chỉ phá vỡ cảm giác và khả năng phản hồi của trò chơi.


Điều đó sẽ giải thích việc hack bộ nhớ có hiệu quả. Bạn có một số liên kết đến bài viết / giấy tờ về không có thiết kế máy chủ có thẩm quyền?
Hatoru Hansou

4
Tải không phải là vấn đề duy nhất - đáp ứng là chìa khóa. Bất kỳ trò chơi thời gian thực nối mạng nào cũng phải sử dụng các kỹ thuật ẩn độ trễ. Để đảm bảo mọi người đồng ý, máy chủ phải có cách đặt hàng các sự kiện xảy ra trên mỗi khách hàng - cố gắng tránh các tình huống như "Tôi bắn bạn trước" "Không, tôi bắn bạn trước". Tốc độ cho các trò chơi như Counter-Strike dựa vào việc lạm dụng đồng bộ hóa này bằng cách thao túng độ trễ mà máy chủ nhận thấy, v.v. (đó là một trong những lý do khiến hầu hết các máy chủ CS đá người chơi có độ trễ cao hơn 100-200ms).
Luaan

3
Trừ khi bạn đang thực hiện một trò chơi theo lượt nghiêm ngặt, điều này đơn giản là không thể tránh được. Độ trễ sẽ luôn tồn tại và tất cả các máy tính tham gia vào trò chơi được nối mạng cần phải đồng ý về "thời gian chung" để đặt hàng các sự kiện. Ngay cả với các hệ thống tốt nhất để quản lý độ trễ, sẽ luôn có sự không nhất quán, nhưng chúng tôi đã rất giỏi trong việc che giấu chúng. Vấn đề là một khi bạn bắt đầu tạo ra những thứ nhỏ bé đó, sẽ dễ dàng hơn để một con bọ tinh vi lướt qua - cho phép khách hàng đăng bài giết chết con quái vật đó hai lần nếu nó giả vờ rằng lần giết thứ hai xảy ra trước lần giết đầu tiên. Thật khó .
Luaan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.