Reverse Engineering แอนตี้ชีต Call of Duty
- บทนำ
- แชร์ผลการศึกษาระบบแอนตี้ชีตโหมดผู้ใช้ของ Black Ops Cold War
- เป็นเกมของ Treyarch และเรียกระบบนี้ว่า TAC (Treyarch Anti-Cheat)
- ความแตกต่างหลักเมื่อเทียบกับเกมรุ่นใหม่คือมีหรือไม่มีไดรเวอร์โหมดเคอร์เนล
Arxan
- บทบาทของ Arxan
- เป็นเครื่องมือสำหรับ obfuscation/การป้องกันที่ใช้ในเกม Call of Duty
- เข้ารหัสไฟล์ปฏิบัติการ และจะยุติโปรเซสหากตรวจพบดีบักเกอร์หรือ checksum ไม่ตรงกัน
การเข้ารหัสไฟล์ปฏิบัติการขณะรัน
- การป้องกันไฟล์ปฏิบัติการ
- ไฟล์ปฏิบัติการของเกมถูกแพ็กและเข้ารหัสไว้ โดย Arxan จะทำการแกะและถอดรหัส
Checksum ของไฟล์ปฏิบัติการ
- การเฝ้าระวัง checksum
- Arxan เฝ้าตรวจสอบการแพตช์ไฟล์ปฏิบัติการอย่างต่อเนื่อง
Jmp Obfuscation
- การทำให้ฟังก์ชันวิเคราะห์ยาก
- แยกฟังก์ชันและคำสั่งด้วย
jmp เพื่อทำให้การวิเคราะห์ยากขึ้น
การทำให้จุดเริ่มต้นวิเคราะห์ยาก
- การป้องกัน entry point
- ติดตาม entry point ของเกมที่ป้องกันด้วย Arxan ได้ยาก
การเข้ารหัสพอยน์เตอร์
- การป้องกันพอยน์เตอร์
- พอยน์เตอร์สำคัญจะถูกเข้ารหัสและถอดรหัสทุกครั้งก่อนใช้งาน
วิธีที่ TAC ตรวจจับการมอนิเตอร์
- การตรวจจับ API hook
- TAC ใช้ Windows API เพื่อทำงานด้านแอนตี้ชีต และตรวจจับแพตเทิร์นบางอย่าง
การค้นหา runtime API export
- การค้นหา API
- TAC ใช้แฮชของโมดูลและแฮชของชื่อ API ในการค้นหา API
Debug register
- การตรวจจับ debug register
- TAC ตรวจจับ debug register และยุติโปรเซส
การบังคับใช้ลายเซ็นไดรเวอร์
- การตรวจจับ test mode
- ตรวจจับ test mode ของ Windows และทำเครื่องหมายบัญชีผู้ใช้
วิธีที่ TAC ยุติโปรเซส
- การยุติโปรเซส
- TAC ยุติโปรเซสด้วยสองวิธี และรีเซ็ตรีจิสเตอร์
การตรวจจับการล็อกชีต
- การตรวจจับการจัดสรรคอนโซล
- ตรวจสอบว่ามีการจัดสรรหน้าต่างคอนโซลหรือไม่เพื่อใช้ตรวจจับชีต
การตรวจจับองค์ประกอบภาพ
- การตรวจจับ ESP และ UI
- ตรวจจับชีตที่วาดบนหน้าจอโดยใช้ DirectX 12
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ควรมีกฎระเบียบทางกฎหมายต่อการลบฟีเจอร์ของผลิตภัณฑ์หลังการขาย โดยเฉพาะเมื่อฟีเจอร์ถูกลบออกผ่านสัญญาหรือ EULA ก็ควรมีการคืนเงินให้เจ้าของเกม การทำให้การซื้อบน Steam เป็นโมฆะไม่ควรเป็นสิ่งที่ทำได้ตามกฎหมาย และแม้จะมีการจำกัดการเข้าสู่ระบบบัญชี ก็ยังควรซื้อขายไอเท็มและคลังไอเท็มได้ หากจะบังคับใช้จรรยาบรรณในเกมแบบผู้เล่นหลายคน ก็ไม่ควรเรียกเก็บเงินค่าเกม มาตรการแบนต้องเป็นไปตามหลักความได้สัดส่วน และต้องมีระบบอุทธรณ์แบบพิจารณาโดยมนุษย์ที่มีการจำกัดค่าใช้จ่าย
หลังจากต่อสู้ทางกฎหมายกับ Activision มา 2 ปี ก็สามารถยกเลิกการแบนถาวรที่ไม่เป็นธรรมได้ Activision แพ้คดีโดยไม่มีหลักฐานเรื่องการโกง
ฉันไม่ได้เล่นเกมนี้แต่คู่ของฉันเล่น เคยเห็นการสังเกตการณ์ผู้เล่นที่อยู่ใต้ดิน และแม้ไคลเอนต์จะถูกแฮ็กหรือมีการโกง ฝั่งเซิร์ฟเวอร์ก็ควรตรวจสอบให้แน่ใจว่าสถานะของผู้เล่นยังถูกต้อง
สงสัยเรื่อง jump obfuscation ว่า unconditional jump มันพบได้บ่อยพอจนกรองเป็นเงื่อนไขล่วงหน้าไม่ได้หรือไม่ รู้สึกว่าน่าจะหาจุดสิ้นสุดของฟังก์ชันได้ง่าย และสงสัยว่าจะวิเคราะห์สแตกเพื่อรู้ตำแหน่งที่ฟังก์ชัน return แล้วหาการเรียกก่อนหน้า return address ได้หรือไม่
สงสัยว่าไปเรียนเทคนิคพวกนี้มาจากที่ไหน อยากเข้าใจเนื้อหาในบทความนี้สักครึ่งหนึ่ง แต่ไม่รู้จะเริ่มอย่างไร
เคยทำ reverse engineering นิดหน่อยกับเกม MMO ยอดนิยมที่อิง Horde/Alliance และพบว่าทำตามขั้นตอนแทบเหมือนกันทุกอย่าง รวมถึงการแฮช export ด้วย FNV32 ดูเหมือนจะใช้ลูกเล่นที่คล้ายกันมาก เลยสงสัยว่าถูกแพ็กด้วยการป้องกันแบบเดียวกันหรือไม่
เป็นงานวิจัยที่ยอดเยี่ยม ชัดเจนว่านี่ไม่ใช่ประสบการณ์ครั้งแรกของผู้เขียน
ตราบใดที่ยังอ่านและเขียนหน่วยความจำได้ ก็ไม่มีทางหยุดการโกงออนไลน์ในเกม FPS ได้
signature scanning คือส่วนที่ชวนติดที่สุดของการทำ reverse engineering เขียนรายการ signature แล้วเขียน binding ให้ภาษาสคริปต์เพื่อเรียกใช้ function pointer นี่คือพื้นฐานที่ทำให้แพลตฟอร์มม็อดของบุคคลที่สามจำนวนมากทำงานได้
การโกงในเกมแบบผู้เล่นหลายคนเป็นปัญหาใหญ่และทำลายความเชื่อมั่นในเกม FPS หลัก ๆ ในฐานะผู้เล่น CS ฉันลองเล่นเกม CoD ใหม่อยู่พักหนึ่ง แต่ไม่มีเกมไหนที่แนะนำได้เพราะปัญหาการโกง เกมอย่าง Escape From Tarkov มีการโกงที่ถึงขั้นขโมยลำกล้องปืนและบังคับปิดเกม/ปิด PC โหมดแข่งขันของ Counter-Strike ทำหน้าที่เหมือนพื้นที่ลงโฆษณาการโกงในเกมเสียมากกว่า Valorant เหนือกว่าเกมอื่นด้วยระบบแอนตี้ชีตที่ล่วงล้ำ แต่ก็ไม่ได้สะอาดอย่างที่แฟน ๆ อ้างกัน อุตสาหกรรม private matchmaking ของ Counter-Strike ถูกสร้างขึ้นบนคำมั่นสัญญาเรื่องแอนตี้ชีตและการเล่นระดับโปร