AOB scan ใน lua script

 อ้างอิงจากบทความ ก่อนหน้านี้
ใช้งาน pattern scan Array of Byte(AOB) หาค่า

ผมจึงนำค่า pattern aob

02 00 00 00 00 00 00 00 3F 00 00 00 66 00 00 00 00 00 00 00 03 00 00 00 ?? 00 00 00 00 00 00 00 00 00 00 00 ?? 00 00 00 00 00 00 00 ?? ?? ?? ??

นี้มาเพื่อใช้เขียนโค้ด lua script ต่อครับ

ด้วยโค้ดคำสั่ง

AOBScan("ใส่patternข้างในนี้")

หากโปรแกรมแสกนค่าพบจะถูกเก็บในรูปแบบ array

ตัวอย่างการนำไปใช้งาน

เปิดเกมที่ต้องการ ส่วนของผมเป็นเกม aow แล้วนำโค้ดด้านล่างนี้ไปใช้งาน
scan = AOBScan("02 00 00 00 00 00 00 00 3F 00 00 00 66 00 00 00 00 00 00 00 03 00 00 00 ?? 00 00 00 00 00 00 00 00 00 00 00 ?? 00 00 00 00 00 00 00 ?? ?? ?? ??")

if scan ~= nil then
    showMessage("OK พบ pattern ที่หาแล้ว")
    scan_num = tonumber(scan[0])
else
    showMessage("Fail ไม่พบ pattern ที่หา")
end

เมื่อทดสอบ Excute script แล้วสามารถใช้งานได้ปกติดี

โดยหลังจากเราได้ pattern นั้นมาแล้ว ตำแหน่งจะไม่ตรงตามค่าที่เราต้องการเล่นกับมัน ต้องใช้วิธีการ บวก หรือ ลบ address โดยใช้ Decimal ซึ่งปกติ cheat engine จะใช้ hex ในการบวกลบค่า ต้องเอาไปแปลงเป็น Dec ก่อนถึงนำมาเขียน lua ได้ครับ (เช่น หากเป็น hex ค่า A ใน lua script ต้องใช้ค่า 10)

โดยท้ายบทความเรื่อง aob ผมต้องนำค่า pattern ที่หาได้ไปบวกกับ hex ค่า 8 ถึงจะได้ address ที่ตรงตำแหน่งดังนั้นใน lua ผมก็ต้องนำไปบวกกับ dec ค่า 8 เช่นกัน
scan = AOBScan("02 00 00 00 00 00 00 00 3F 00 00 00 66 00 00 00 00 00 00 00 03 00 00 00 ?? 00 00 00 00 00 00 00 00 00 00 00 ?? 00 00 00 00 00 00 00 ?? ?? ?? ??")

if scan ~= nil then --ตั้งเงื่อนไขถ้าในตัวแปร scan ไม่เป็นค่าว่างให้เข้าเงื่อนไข
    showMessage("OK พบ pattern ที่หาแล้ว")
    scan_num = tonumber(scan[0],16) --แปลงเป็นเลขฐาน 16
    print(readInteger(scan_num + 8)) --อ่านค่าแบบ 4byte พร้อมบวก8 ให้ได้ตำแหน่งที่ต้องการ
else
    showMessage("Fail ไม่พบ pattern ที่หา")
end

จากภาพด้านบน ค่าที่ print ออกมาคือ 63 คือเลขค่านั่งของเกมนี้ ถ้ายืนจะเป็น 1

ส่วนของการต่อยอดใช้งาน ลึกๆนั้นขึ้นอยู่กับไอเดียของแต่ละท่านครับ

แสดงความคิดเห็น

0 ความคิดเห็น