Anti-Cheat สำหรับปัญหา MMO และวิธีแก้ปัญหา? [ปิด]


14

เกมออนไลน์ส่วนใหญ่ประสบปัญหานี้และมีบริษัท ซอฟต์แวร์บางแห่งที่ให้ความช่วยเหลือ แต่เมื่อเร็ว ๆ นี้จากสิ่งที่ฉันเคยเห็น บริษัท ส่วนใหญ่พยายามหลีกเลี่ยงโปรแกรมที่สร้างระบบของตัวเอง (พายุหิมะกับผู้คุม, aion พร้อมการตรวจสอบของตนเอง ฯลฯ ) ... ) แต่มันเป็นกรณีที่ยากมากที่จะป้องกันไม่ให้ ...

แค่อยากจะบอกว่าฉันทำหัวข้อคำถามอื่นเป็นวิกิชุมชนเฉพาะสำหรับการโพสต์แอปพลิเคชันและเป็นคุณสมบัติและแนวคิดที่อยู่เบื้องหลังคำถามนี้ที่นี่ไม่ใช่การแสดงรายการเหล่านั้น แต่แทนที่จะรู้เพิ่มเติมเกี่ยวกับสิ่งที่คุณพยายามปัญหาตามท้องถนน ชิ้นส่วนของรหัสถ้าแอปพลิเคชันและอื่น ๆ

พวกคุณใช้ความคุ้มครองแบบไหนในการป้องกันการกระทำเช่นนั้น:

  1. ซอฟต์แวร์ป้องกันการโกง? (โปรดระบุว่าสาเหตุใดและปัญหาที่เป็นไปได้ที่คุณเผชิญเช่น aion หยุดใช้ GameGuard ในช่วงเบต้าเนื่องจากปัญหาความเข้ากันได้จำนวนมากและบ่นจากผู้ใช้)
  2. รหัสของคุณเอง? (ปกติคุณจะใช้การตรวจสอบประเภทใดเพื่อให้แน่ใจว่ามีผู้เล่นที่ไม่สุจริตเช่น speedhack ให้ตรวจสอบตำแหน่งใหม่กับความเร็ว + ตำแหน่งสุดท้าย ฯลฯ ... )
  3. ไม่ฉันไม่สนหรอกเหรอ? (เหตุผลส่วนตัวหรือข้อมูลที่คุณต้องการแชร์)

มีโค้ดที่น่าสนใจเกี่ยวกับปัญหาที่คุณต้องการโพสต์หรือไม่

รู้สึกฟรีเพื่อทำใหม่ข้อความของฉัน inst ภาษาอังกฤษของฉันที่ดี? **


1
แท็กทำ หากคุณคาดหวังว่าสิ่งนี้จะมีคำตอบจำนวนมากโปรดทำให้ชุมชนนั้นเป็นวิกิ มันจะช่วยให้คนหลายคนสามารถแก้ไขคำตอบของแต่ละบุคคลแทนที่จะเป็นคนเรียกคืนพวกเขาอย่างต่อเนื่อง
Jesse Dorsey

1
ตัวอย่างของสิ่งนี้จะเป็นประโยชน์อย่างไร ลองดูสิ: gamedev.stackexchange.com/questions/480/…
Jesse Dorsey

ขอบคุณสำหรับความคิดเห็นและการเชื่อมโยงฉันจะตรวจสอบออกตอนนี้และดูในมุมมองของฉันคำถามประเภทนี้สำหรับการพัฒนาเกมเป็นจุดที่ดีมากสำหรับการอภิปราย แต่ส่วนใหญ่สำหรับเกม MMO ที่ฉันเชื่อดังนั้นฉันไม่แน่ใจเช่นกัน ชุมชนที่มีขนาดเล็กสวยที่ momment และฉันก็กลัวว่าจะถูก negativated สำหรับคำถามดังกล่าวจะเริ่มต้นด้วยดังนั้นผมไม่แน่ใจว่าขอบคุณสำหรับการสร้างแท็ก :)
กรังปรีซ์

คำตอบ:


22

น่าเสียดายที่มันยากที่จะหยุดยั้งผู้คนจากการโกงซึ่งเป็นเหตุผลว่าทำไมซอฟต์แวร์อย่าง Punkbuster จึงถูกสร้างขึ้นเพื่อพยายามจับบางคน

สำหรับ MMO, สิ่งที่ใหญ่ที่สุดที่คุณสามารถทำได้คือเพียงแค่สิ่งที่ไม่ไว้วางใจของลูกค้าจะส่งคุณ ลูกค้าไม่สามารถบอกคุณได้ว่าผู้เล่นย้ายไปที่ใดความเสียหายที่เกิดขึ้นกับใคร ฯลฯ แทนคุณควรส่งอินพุตควบคุมไปยังเซิร์ฟเวอร์ตรวจสอบว่ามันใช้งานได้จริง (กดปุ่ม "โจมตี" ตัวอย่างเช่น 1,000 ครั้งใน 1 วินาทีไม่ถูกต้อง) จากนั้นอัพเดตการจำลองบนเซิร์ฟเวอร์ จากนั้นคุณจะส่งส่วนที่เกี่ยวข้องของสถานะใหม่ของเกมกลับไปยังไคลเอนต์

ในขณะที่คุณกำลังตรวจสอบการป้อนข้อมูลของผู้ใช้ก็เป็นไปได้ที่จะมองหาแนวโน้มในการป้อนข้อมูลของพวกเขา หากคุณไม่อนุญาตให้มีมาโครคุณสามารถจับได้ที่นี่โดยสังเกตว่าผู้ใช้คลิกปุ่มเดียวกันที่พิกัดพิกเซลเดียวกันในช่วงเวลา 1 วินาทีที่สมบูรณ์แบบเป็นเวลา 1 วินาที

ลูกค้าเป็นสถานที่หลักที่ผู้คนสามารถโกงได้ดังนั้นโปรแกรมอย่าง Punkbuster สามารถลด wallhacks, aimbots และอื่น ๆ ได้นอกจากนั้นการไม่เชื่อถือลูกค้าและการตรวจสอบสิ่งที่ส่งถึงคุณโดยลูกค้าจะช่วยลดการโกง


ขอบคุณสำหรับการสนับสนุนของคุณฉันหวังว่าจะได้เห็นผู้คนมากขึ้นในการป้อนข้อมูลของพวกเขา; แน่นอนว่านี่เป็นปัญหาที่ยากมากที่จะตอบโต้ ... นอกจากนี้ยังมีคนที่ทำลายเกมเพื่อปิดการใช้งานโปรแกรมป้องกันการโกงและมันถูกเรียกจากมัน ... ซึ่งทำให้สิ่งต่าง ๆ ยากยิ่งขึ้น ... เว้นแต่คุณจะมีออนไลน์ จีเอ็มเพื่อตรวจสอบว่าบุคคลที่ได้รับหรือการตรวจสอบอื่น ๆ เช่นคุณระบุไว้ คุณคิดอย่างไรกับคำถามนี้สำหรับวิกิชุมชน ฉันควรจะทำตามที่เป็นอยู่หรือเปลี่ยนบางสิ่งบางอย่างเพื่อให้เหมาะสมกับมัน;
Prix

อาจเป็นชุมชน wiki เว้นแต่ว่าคุณกำลังมองหาคำตอบเฉพาะ
ฌอนเจมส์

รายละเอียดเพิ่มเติมเกี่ยวกับการทำงานของ Punkbuster สำหรับคำตอบที่สมบูรณ์ยิ่งขึ้น?
Chris Lloyd

คำตอบที่ดี - ไม่มี 'ทางออกหนึ่งเดียวในการควบคุมพวกเขาทั้งหมด' - เกมส่วนใหญ่มี 'เวกเตอร์โจมตี' หลายตัว บ่อยครั้งเกี่ยวกับการประเมินความเสี่ยงมากกว่าสิ่งอื่นใดเช่นผลกระทบต่อชุมชนหากใครบางคนสามารถโกงระบบ X และอื่น ๆ ได้
zebrabox

ฉันเชื่อว่าการแฮ็คนั้นเป็นสิ่งที่หลีกเลี่ยงไม่ได้แม้จะมีโปรแกรมต่อต้านการโกงที่แข็งแกร่งที่สุด การโกงไม่เป็นไรถ้าออฟไลน์ในทางเทคนิค แต่ไม่ออนไลน์ การเล่นออนไลน์นั้นมีความยุติธรรมมากกว่า เป็นอย่างนั้นเหรอ?
David Dimalanta

8

เข้าสู่ระบบ ทุกสิ่งที่เกิดขึ้นบนเซิร์ฟเวอร์ควรถูกบันทึกและทุกอย่างที่มาจากไคลเอนต์ ไคลเอนต์ไม่น่าเชื่อถือโดยเนื้อแท้ แต่แม้การบันทึกข้อมูลที่ไม่น่าเชื่อถือสามารถส่องสว่าง

เมื่อทุกอย่างถูกบันทึกการตรวจสอบการโกงจะกลายเป็นเรื่องของการวิเคราะห์ข้อมูล กลโกงบางอย่างจะเห็นได้ชัด (ค่าอยู่นอกช่วงที่ยอมรับได้เช่นความสามารถในการเคลื่อนที่ระหว่างจุดที่ไกลเกินกว่าที่ Avatar อนุญาตให้ทำได้) คนอื่น ๆ จะร้ายกาจกว่า (เช่น aimbots ที่ให้พิกเซลกำหนดเป้าหมายที่สมบูรณ์แบบ บางคนก็ยากที่จะตรวจจับ (เช่น wallhacks) แต่การบันทึกให้มากที่สุดเท่าที่จะทำได้ช่วยให้การตรวจจับอัตโนมัติและด้วยตนเอง มีบทความต่าง ๆ เกี่ยวกับเรื่องนี้ แต่โดยทั่วไปกลโกงจะถูกตรวจพบได้ง่ายมากในการตรวจจับอัตโนมัติเพราะพวกมันสามารถคาดเดา / ทำซ้ำได้ในแบบที่ผู้เล่นไม่ได้ทำ

เนื่องจากการบันทึกทุกอย่างน่าจะเป็นไปไม่ได้การบันทึกที่ทำเป็นชั้นจึงมีประโยชน์ ตัวอย่างเช่นรายงานการโกงโดยผู้ใช้หรือการบันทึกพื้นฐานอย่างง่าย ๆ ที่ตรวจพบความเป็นไปได้ของการโกง (คะแนนซึ่งอยู่เหนือเส้นโค้งทางสถิติ) จะเพียงพอที่จะตั้งค่าสถานะไคลเอนต์ / บัญชี / CD-key เฉพาะสำหรับการบันทึก verbose เพิ่มเติม จากนั้นนำมาใช้เพื่อพิสูจน์โดยปราศจากข้อสงสัยอย่างสมเหตุสมผลว่ามีการโกง

สิ่งที่คุณทำเมื่อตรวจพบการโกงนั้นเป็นอีกเรื่องหนึ่งโดยสิ้นเชิง การแบนบัญชีเป็นสิ่งที่ดีโดยเฉพาะอย่างยิ่งเมื่อคุณมีกลไกตรวจจับอัตโนมัติที่เชื่อถือได้เพียงพอ การแบนทั้งสองจะแจ้งเตือนกลโกงที่ตรวจพบและยังเสี่ยงต่อการเกิดผลผิดพลาดอันเนื่องมาจากกลไกการตรวจจับที่ไม่สามารถสรุปได้ การแบนช้าเกินไปทำให้เสี่ยงต่อการทำลายประสบการณ์เกมให้กับผู้อื่น นี่เป็นพื้นที่สีเทามากและต้องการให้ผู้พัฒนาทำการตัดสินใจ


2

สมมติว่างานที่สำคัญทั้งหมดในเกมของคุณกำลังเกิดขึ้นฝั่งเซิร์ฟเวอร์ควรมีการโกงน้อยหรือไม่มีเลย หากคุณต้องการ จำกัด การทำมาโครหรือทำให้ผู้ใช้แก้ไขแพ็กเก็ตน่ารังเกียจให้โปรแกรมของคุณทำการสแกนโมดูลที่ทำงานอยู่ในกระบวนการเป็นระยะ หากคุณพบเช่น WpeSpy.dll คุณจะรู้ว่ามีการแนบ WPE ทำเพื่อเครื่องมือทั่วไปอื่น ๆ นี่อาจเป็นเรื่องที่เกิดขึ้นได้และเป็นการแข่งขันทางอ้อมและสาเหตุที่หายไปแต่ถ้าเกมของคุณมีขนาดค่อนข้างเล็กคุณสามารถลดจำนวนคนที่คาดคั้นได้ง่าย ๆ โดยประมาณสิบ ... และนั่นอาจจะดี เพียงพอสำหรับคุณ


ขอบคุณสำหรับการสนับสนุนคุณใช้ซอฟต์แวร์ป้องกันการโกงหรือมีปัญหาการเรียงลำดับที่คุณต้องดูแลหรือไม่? ถ้าเป็นเช่นนั้นมันจะดีที่จะได้ยินเกี่ยวกับมัน
Prix

2
ฉันไม่ได้ใช้ซอฟต์แวร์ต่อต้านการโกงของบุคคลที่สามไม่ใช่ เมื่อฉันเริ่มเขียนรหัส RPG ออนไลน์ครั้งแรกเซิร์ฟเวอร์ของฉันเพิ่งเรียกว่า 'โจมตี' เมื่อลูกค้าส่ง 'โจมตี' แทนที่จะใส่คำขอลงในคิวสิ่งต่าง ๆ เช่นนั้น สิ่งเหล่านี้สำคัญที่สุดสำหรับการป้องกันการโกง แฮ็กสปีดความเร็วทำเวลาทั้งหมดบนเซิร์ฟเวอร์เพื่อให้ได้เปรียบแต่ยังส่งการประทับเวลาและถ้าคุณดริฟท์มากเกินไปคุณจะรู้ว่ากำลังใช้อยู่ ทำเครื่องหมายบัญชีของพวกเขา แต่อย่าเตะทันทีข้อเสนอแนะในทันทีเป็นวิธีที่ยอดเยี่ยมสำหรับคนที่จะรู้ว่าซอฟต์แวร์ของคุณตรวจพบอะไร
James Bellinger

1
ฉันชอบส่วนbut also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.นี้เมื่อเร็ว ๆ นี้ฉันกำลังมองหาการใช้งานการประทับเวลาและเตือนระบบจากผู้ใช้ที่ทำเครื่องหมายไว้ในปัจจุบันสิ่งที่ฉันวางเครื่องเล่นไว้ในรายการสิ่งที่ฉันกำลังทำอยู่ตอนนี้คือถ้าบางคนมีการใช้งานที่ไม่เหมาะสม GM ออนไลน์สำหรับการตรวจสอบ ...
กรังปรีซ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.