110 words
1 minute
การทำงานและเทคนิคเบื้องหลัง Aimbot

ก่อนที่จะไปพูดถึงการทำงานของ aimbot มาดูความหมายของ aimbot กันก่อนว่าคืออะไร

Aimbot เป็นโปรแกรมหรือฟีเจอร์ที่ช่วยให้ผู้เล่นในเกมยิง (FPS - First-Person Shooter) สามารถเล็งเป้าหมายได้อย่างแม่นยำโดยอัตโนมัติ ซึ่งมักถูกใช้ในลักษณะที่เป็นการโกงเกม (cheating) บทความนี้จะอธิบายว่า Aimbot ทำงานอย่างไร และใช้เทคนิคอะไรบ้างในการพัฒนา

1. การดึงข้อมูลจากเกม#

การทำงานของ Aimbot เริ่มต้นจากการดึงข้อมูลที่จำเป็นออกจากเกม เช่น:

  • ตำแหน่งของศัตรู: ตำแหน่งตัวละครในเกมที่ศัตรูอยู่ โดยปกติจะอยู่ในหน่วยพิกัด (coordinates) เช่น (x, y, z)
  • ตำแหน่งของผู้เล่น: ตำแหน่งของตัวละครผู้ใช้ รวมถึงมุมกล้อง (camera angles) ที่ผู้เล่นกำลังมอง
  • สถานะของเกม: เช่น ศัตรูที่มองเห็นได้ (visible) หรืออยู่ในวิถีการยิง

การดึงข้อมูลนี้สามารถทำได้โดย:

อ่านหน่วยความจำ (Memory Reading): ใช้เทคนิคเช่นการเขียนโค้ดที่อ่านค่าจาก RAM ของเกมผ่านเครื่องมืออย่าง Cheat Engine, MemProcFS, หรือจะเรียกใช้จาก Windows API (ReadProcessMemory) ก็ได้

2. การคำนวณเป้าหมาย#

เมื่อได้ข้อมูลตำแหน่งของศัตรูและผู้เล่น โปรแกรมจะคำนวณเพื่อให้กล้องของผู้เล่นเล็งไปที่ศัตรูโดยอัตโนมัติ:

  • การคำนวณมุม (Angle Calculation): ใช้สูตรคณิตศาสตร์ 3 มิติ เช่น arctangent (atan2) เพื่อคำนวณมุมที่ผู้เล่นควรหมุนกล้อง
  • การปรับวิถีการยิง (Projectile Trajectory): หากเกมมีการใช้วิถีโค้งของกระสุน (เช่น ลูกธนูหรือ RPG) Aimbot อาจต้องคำนวณการล่วงหน้าของศัตรู (prediction) และปรับการเล็งตาม

Projectile | mechanics | Britannica

ตัวอย่างสูตรการคำนวณมุมระหว่างผู้เล่นและศัตรูในพิกัด 3D:

image.png

ความมายของ Yaw Pitch Roll

  • Yaw คือการหันซ้ายหรือขวา
  • Pitch คือการก้มหรือเงย
  • Roll คือการเอียงซ้ายหรือขวา

image.png

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

image.png

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

image.png

เดี๋ยวเรามาดูในอีกมุมมองที่จะเห็นทั้ง 2 ภาพที่ผ่านมา ก็จะเห็นว่ามันจะมี สามเหลี่ยมอยู่ 2 อันที่เราจะคำนวณ

image.png

3. การเล็งเป้าหมาย#

หลังจากคำนวณมุมที่ต้องเล็งแล้ว โปรแกรมจะปรับการเล็งของผู้เล่นโดยอัตโนมัติ:

  • การเขียนหน่วยความจำ (Memory Writing): เขียนค่ามุมที่คำนวณได้ลงไปในหน่วยความจำของเกม เช่น ตำแหน่งของกล้องหรือเมาส์
  • การใช้การเคลื่อนไหวของเมาส์ (Mouse Input): ส่งคำสั่งเลื่อนเมาส์ไปยังตำแหน่งเป้าหมายโดยใช้ API อย่าง Windows API (เช่น SendInput หรือ mouse_event)

สุดท้ายนี้ก็หวังว่าทุกคนจะได้ความรู้ให้หายสงสัยกันว่ามันทำได้อย่างไรกัน

การทำงานและเทคนิคเบื้องหลัง Aimbot
https://blog.0x01code.me/posts/behind-the-aimbot/
Author
0x01code
Published at
2024-12-01
License
CC BY-NC-SA 4.0