Game Hacking

Datafarm
3 min readOct 19, 2022

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

จุดประสงค์ของหนังสือเล่มนี้ไม่ได้มีแค่ แค่การแก้ไขข้อมูลต่าง ๆ เช่น จำนวนเงินเพียงอย่างเดียว แต่เราสามารถทำ “บอท” และศึกษากระบวนการทำงานของเกมได้อีกด้วยครับ

สำหรับท่านที่ยังไม่มีประสบการณ์กันเท่าไหร่นัก คงจะสงสัยกันใช่ไหมครับ ว่าเราจะเริ่มโกงเกมได้อย่างไรกันล่ะ ?

ในหนังสือได้กล่าวไว้ว่า

“Memory scanning is the gateway to game hacking”

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

ยกตัวอย่าง หากในเกมเรามีเงินอยู่ $1,000 เมื่อเราหาข้อมูลใน Memory ที่เก็บจำนวนเงินของเราเจอ เราก็สามารถแก้ไขตัวเลขให้เป็น $999,999 ได้เป็นต้น

https://www.pinterest.com/pin/745908757029464217/

แล้วเราจะใช้เครื่องมืออะไรในการค้นหาข้อมูลใน Memory ของเกมกันล่ะ ?

ในหนังสือได้แนะนำโปรแกรมตัวหนึ่งที่ชื่อว่า “Cheat Engine”

ทำไมต้อง “Cheat Engine”

“Cheat Engine” เป็นเครื่องมือสแกน/ดีบักเกอร์หน่วยความจำ ที่น่าจะดีที่สุดแล้ว (ในความคิดเห็นส่วนตัวของผม) หรือหากท่านใดที่มีโปรแกรมอื่น ๆ ที่ดีกว่าสามารถแนะนำกันมาได้เลยนะครับ และเจ้า Cheat Engine เนี่ยมันยังเป็น “ฟรีแวร์” อีก และเหมาะสำหรับผู้เริ่มต้นอีกด้วย โดยสามารถ Download ได้ที่นี่เลยครับ >> https://www.cheatengine.org/downloads.php

ก่อนอื่นเราจะพามารู้จักเจ้า Cheat Engine คร่าว ๆ กันครับ :)

เริ่มจากมารู้จักกับหน้าตาของเจ้า Cheat Engine กันก่อน เมื่อเปิดโปรแกรมขึ้นมาก็จะขึ้นหน้าต่างประมาณนี้ครับ

ซึ่งในปัจจุบัน Cheat Engine ได้เดินทางมาถึง Version 7.4 แล้วครับ

และเพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มจากเมนูแรกกันเลยครับ

Processes

เป็นเมนูที่ไว้ใช้ในการเลือก Process ของโปรแกรมนั้น ๆ เพื่อเอามาอ่าน Memory ของโปรแกรม แต่ในกรณีที่ไม่เจอ Process ของโปรแกรม

Scan

เป็นเมนูที่เอาไว้ใช้ค้นหาข้อมูลต่าง ๆ โดยการกรอกข้อมูลที่ต้องการหาที่ช่อง Value แล้วกดปุ่ม “First Scan” เราจะพบข้อมูล Address ที่เก็บข้อมูล(Value) ที่เราจะค้นหาขึ้นมาจำนวนมากที่ช่องผลลัพธ์ (Results List) เพื่อลดขอบเขตการค้นหา เราจะอัปเดตข้อมูลในช่อง Value แล้วเรากดปุ่ม “Next Scan” เพื่อให้ได้เจอข้อมูลที่เราต้องการใช้งาน

Results List

ช่องผลลัพธ์ (Results List) คือช่องที่แสดงรายการข้อมูลที่ได้จากการกดปุ่ม First Scan โดยจะประกอบไปด้วย Address และค่าข้อมูลที่เก็บอยู่ Address นั้น

แต่ก่อนที่เราจะเริ่มค้นหาข้อมูลใน Memory เรามาดูที่รูปแบบของ Scan Type กันก่อนครับ เพื่อช่วยในการหาข้อมูลได้ง่ายขึ้นโดย Scan Type มีด้วยกัน 5 อย่างหลัก ๆ ได้แก่

  • Exact Value
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่คุณกำลังค้นหานั้นเป็นข้อมูลที่แน่นอน เป็นข้อมูลที่เรารู้ เป็นข้อมูลที่เราเห็นได้ชัดเจน เช่น จำนวนพลังชีวิต, จำนวนมานา หรือจำนวนเงิน เป็นต้น
  • Bigger Than
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่คุณกำลังค้นหา มีข้อมูลเพิ่มขึ้นเรื่อย ๆ ซึ่งมักเกิดขึ้น กับตัวจับเวลาเป็นต้น
  • Smaller Than
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่คุณกำลังค้นหา มีข้อมูลเพิ่มลดลงเรื่อย ๆ ซึ่งมักเกิดขึ้นกับตัวจับเวลาเป็นต้น (ในกรณีที่เป็นตัวจับเวลานับถอยหลัง)
  • Value Between
    ตัวเลือกนี้จะมีประโยชน์เมื่อเราต้องหาข้อมูลที่อยู่ระหว่างจำนวน 2 ข้อมูล
    เพิ่มเติม ในส่วนนี้จะประมาณว่าข้อมูลที่เราเห็นเป็นข้อมูลจำนวนเต็ม แต่ความจริงเป็นข้อมูลที่เป็นทศนิยม เพราะฉะนั้น ถ้าเราใส่ข้อมูลระหว่าง 2 ข้อมูลจะเพิ่มโอกาสหาข้อมูล Memory ได้ง่ายขึ้น
  • Unknown Initial Value
    ตัวเลือกนี้จะมีประโยชน์สำหรับการค้นหาไอเทม หรือมอนสเตอร์ที่อยู่ในช่วงเวลา หรือแผนที่นั้น ๆ เพราะเราไม่สามารถทราบข้อมูล Memory ที่ชัดเจนของไอเทม หรือมอนสเตอร์ในขณะนั้นได้

และหลังจากที่เรากด Frist Scan กันแล้ว จะมี Scan Type เพิ่มเติมขึ้นมา ได้แก่

  • Increased Value
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่เราต้องการมีจำนวนเพิ่มขึ้น จากข้อมูลแรกที่เราค้นหาก่อนหน้านี้
  • Increased Value By
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่เราต้องการมีจำนวนเพิ่มขึ้น จากข้อมูลแรกที่เราค้นหาก่อนหน้านี้ โดยที่เราต้องทราบจำนวนที่เพิ่มขึ้นมา
  • Decreased Value
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่เราต้องการมีจำนวนลดลง จากข้อมูลแรกที่เราค้นหาก่อนหน้านี้
  • Decreased Value By
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลที่เราต้องการมีจำนวนลดลง จากข้อมูลแรกที่เราค้นหาก่อนหน้านี้ โดยที่เราทราบจำนวนที่ลดลงมา
  • Changed Value
    ตัวเลือกนี้จะมีประโยชน์เมื่อข้อมูลมีการเปลี่ยนแปลง แต่เราไม่ทราบว่ามีการเปลี่ยนแปลงจำนวนเท่าไหร่ ไม่ว่าจะเพิ่มขึ้น หรือลบลงก็ตาม
  • Unchanged Value
    ตัวเลือกนี้จะมีประโยชน์เมื่อเราหาข้อมูลที่ไม่มีการเปลี่ยนแปลง ตัวเลือกนี้จะช่วยให้เราหาข้อมูลที่ไม่ได้เพิ่มขึ้น หรือลดจริง ๆ เจอได้ ประมาณว่า เมื่อเราหาข้อมูลบางอย่าง แต่ผลลัพธ์ที่แสดงออกมาที่ช่องผลลัพธ์ (Results List) มีจำนวนมากเกินไปซึ่งอาจจะเป็นผลลวง เราสามารถลองใช้ตัวเลือกนี้ได้โดยกรอกข้อมูลจำนวนมาก ๆ เพื่อลดผลลัพธ์ที่แสดงออกมาให้เหลือเฉพาะค่าที่ไม่ได้เปลี่ยนแปลงจริง

สำหรับวันนี้ผมก็ขอมาแนะนำโปรแกรมคร่าว ๆ เพียงเท่านี้ก่อนครับ สำหรับตอนต่อไปเราจะมาทำ Lab มาทดสอบการหาข้อมูล และเปลี่ยนแปลงข้อมูลกันครับ ถ้าเกิดมีข้อมูลผิดพลาดประการใด ทางผู้เขียนก็ขอกราบอภัยอย่างสูงครับ

ก่อนจากกันก็ขอขอบคุณ พี่โอ๊ต ที่ให้ยืมหนังสือดี ๆ เล่มนี้มาครับ

https://staffino.com/blog/en/10-meme-which-say-thank-you-better-than-words/

อย่าลืมรักษาสุขภาพกันด้วยนะครับ สวัสดีครับ :))))

--

--