วิธีการป้องกันปืนออนไลน์เรียลไทม์ของคุณจากบอทที่มีศักยภาพ


14

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

สิ่งหนึ่งที่ฉันไม่เข้าใจคือฉันจะปกป้องเกมจากคนที่พยายามสร้างบอทได้อย่างไร

สิ่งที่ฉันหมายถึงคือเท่าที่ฉันเข้าใจเป็นไปไม่ได้ที่จะปกป้องการรับส่งข้อมูลเครือข่ายในแบบที่ผู้เล่นจะไม่สามารถสร้างโปรแกรมที่ฟังสิ่งที่เกิดขึ้นและเข้าใจได้

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

ดังนั้นเทคนิคชนิดใดที่ใช้ในการปกป้องเกมเรียลไทม์จากบอทดังกล่าว

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


Punkbuster, ฮิฮิ .. มีเหตุผลมี app ของบุคคลที่สามที่ตรวจพบปพลิเคชันของบุคคลที่สามและการเปลี่ยนแปลง :)
เจมส์

ทำไมคุณถึงกังวลว่าคนสร้างบอท บางทีคุณสามารถแก้ไขได้ดังนั้นจึงไม่ใช่ปัญหา
Beska

@ James Punkbuster แย่มาก ฉันเป็นคนอื่น ๆ ที่มีประสบการณ์ไม่ดีพยายามเล่นเกมใหม่เมื่อพวกเขาออกมา รับการเตะอย่างต่อเนื่องสำหรับข้อผิดพลาด punkbuster บางอย่างไม่สนุก
AttackHobo

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

@AttackingHobo ทั้งหมดที่ฉันตั้งใจจะชี้ให้เห็นคือมีทั้ง บริษัท ที่ไม่ทำอะไรเลยนอกจากจะพยายามหาทางออกให้กับปัญหานี้ PunkBuster เป็นเพียงหนึ่งในชิ้นที่รู้จักมากขึ้นของซอฟต์แวร์ที่พยายามที่จะทำเช่นนี้ดีหรือไม่ดี :)
เจมส์

คำตอบ:


8

มีสองวิธีในการโต้ตอบบอท เป็นการป้องกันฝั่งไคลเอ็นต์และการวิเคราะห์ฝั่งเซิร์ฟเวอร์

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

นอกจากจะมีประสิทธิภาพน้อยกว่า 100% แล้วการป้องกันฝั่งไคลเอ็นต์ก็มีข้อเสียเปรียบที่ทำให้ผู้เล่นของคุณรำคาญ ปกติแล้วมันหมายถึงสิ่งต่าง ๆ เช่นการปิดใช้งานการสลับงาน alt-tab โปรแกรมป้องกันไวรัส ฯลฯ

การวิเคราะห์ฝั่งเซิร์ฟเวอร์นั้นรบกวนน้อยกว่า ในวิธีการนี้คุณมีรหัสเซิร์ฟเวอร์ที่วิเคราะห์รูปแบบพฤติกรรมของผู้เล่น บ่อยครั้งที่บอทเล่นแตกต่างกันอย่างชัดเจน ตัวอย่างเช่นผู้เล่นที่เป็นมนุษย์มีช่วงเวลาที่แตกต่างกันระหว่างการกระทำ (เช่นการยิง) และในครั้งนี้เชื่อฟังการกระจายตัวของเส้นโค้งระฆัง บอตดั้งเดิมจะมีเวลาคงที่หรือกระจายอย่างสม่ำเสมอในบางช่วงเวลา ความจริงแล้วสนุก: การใช้วิธีนี้เราเคยจับผู้เล่นที่มีบอตเชิงกลซึ่งเป็นอุปกรณ์ที่ฉลาดที่ผลักปุ่มบนแป้นพิมพ์กายภาพของเขา จำเป็นต้องพูดไม่ได้จำนวนเงินของการป้องกันลูกค้าสามารถจับว่า การวิเคราะห์นี้ยังไม่สมบูรณ์แบบ บอทขั้นสูงจะหลอกระบบของคุณและยิ่งคุณตรวจสอบมากขึ้นเท่าไหร่บอทขั้นสูงก็จะยิ่งมากขึ้น

เพื่อการป้องกันที่ดีที่สุดคุณสามารถรวมทั้งวิธีการเหล่านี้ การป้องกันลูกค้าจะทำให้การพัฒนาบอตยากขึ้นและการวิเคราะห์เซิร์ฟเวอร์จะหยุดบ็อตธรรมดาที่พัฒนาขึ้นอย่างรวดเร็ว แต่ไม่ว่าคุณจะทำอะไรคุณไม่สามารถหยุดบ็อตได้ทั้งหมด ดีเว้นแต่คุณจะส่งตัวแทนของคุณไปที่บ้านของผู้เล่นเพื่อควบคุมการเล่นและรายงานการละเมิด (ซึ่งไม่เคยได้ยินมาก่อนเลยฉันได้อ่านเรื่องราวเกี่ยวกับ บริษัท โป๊กเกอร์ออนไลน์ที่ส่งผู้คนไปที่บ้านของผู้เล่นที่ประสบความสำเร็จอย่างมากเพื่อยืนยันว่าเขาเล่นอย่างถูกกฎหมาย แต่ตอนนี้ฉันดูเหมือนจะไม่พบมัน)

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


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

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

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

ไม่มีเกมที่ฉันทำงานเกี่ยวกับการเข้ารหัสที่ใช้ทุกที่ยกเว้นลำดับการลงชื่อเข้าใช้ดังนั้นฉันไม่รู้เลยว่ามันมีผลต่อความล่าช้ามากแค่ไหน ขึ้นอยู่กับอัลกอริทึมการเข้ารหัสฉันเดา
ไม่เป็นไร

2

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

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

คุณจะต้องตรวจสอบให้แน่ใจว่า exe ลูกค้าไม่ได้ถูกดัดแปลง


1

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


ฉันคิดว่าเกมที่ขึ้นอยู่กับการทำงานเป็นทีมและการเตรียมการและเกมที่ขึ้นอยู่กับทักษะของ Twitch ล้วนๆ ถึงกระนั้นฉันก็ไม่คิดว่าทุกคนควรปรับตัวเลือกการออกแบบเกมของพวกเขาให้เข้ากับอุปสรรคทางเทคนิค
Zaky German

@ Zaky: ฉันเคยสร้างต้นแบบเกมสไตล์เวิร์มซึ่งในระหว่างการเสียชีวิตอย่างกะทันหันหน้าจอจะค่อยๆเติมของเหลว SPH มันดูเจ๋งจริงๆจนกระทั่งเกมล้าช้า ฉันคิดว่าการตัดสินใจออกแบบเกมจำนวนมากได้รับผลกระทบจากอุปสรรคทางเทคนิค
deft_code

@deft_code ฉันหมายถึงการออกแบบเกมเช่นเดียวกับกลไกการเล่นเกมไม่ใช่ศิลปะหรือการออกแบบกราฟิก
Zaky German

การใช้ SPH ของฉันนั้นช่างเป็นเกมมากเท่ากับการตายของหนอนในน้ำ ฉันแค่เปลี่ยนวิธีที่น้ำมีปฏิสัมพันธ์กับเกม
deft_code

0

และถามคำถามที่สำคัญกับตัวเองว่ามันคุ้มค่ากับปัญหาหรือไม่ Cheaters และ botters สามารถทำได้ 2 อย่าง:

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

ทั้งสองไม่ได้มี แต่เพียงผู้เดียว

โดยทั่วไปแล้วปัญหาที่ใหญ่ที่สุดคือ 3+ (ในฐานะมนุษย์สามารถใช้การฝึกอบรมใช้คีย์บอร์ด 2 ตัวหรืออุปกรณ์อินพุตอื่น ๆ ในเวลาเดียวกัน แต่ไม่มากเท่าที่เขามีเพียง 2 มือ) ลูกค้าจากที่อยู่ IP เดียวกันหรือใกล้เคียงกัน (หรือ MAC ที่อยู่) ทำหน้าที่พร้อมเพรียงโดยตรงดำเนินการคำสั่งภายในมิลลิวินาทีของกันและกัน ดังนั้นหากคุณตรวจพบว่ามีลูกค้า 5 รายที่มาจากที่อยู่ IP เดียวกันทั้งหมดให้คำสั่งในอัตราที่สูงผิดปกติและในการประสานงานอย่างใกล้ชิดผิดปกติคุณอาจพบว่าบอตเตอร์ของคุณ โดยทั่วไปแล้วสิ่งนี้จะสร้างความเสียหายได้มากที่สุดในสถานการณ์ของพีวีพีซึ่งกองทัพบ็อตนี้สามารถครองการสู้รบกับโทนินที่ควบคุมโดยมนุษย์จำนวนมากเนื่องจากการประสานงานและความเร็วที่สูงขึ้น โดยทั่วไปแล้วจะมีความเสียหาย จำกัด ในเกม (ยกเว้นในกรณีที่อนุญาตให้บุคคลหนึ่งฝึกอบรมหลายโทนิกส์ในระดับสูงได้เร็วขึ้น)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.