กู้คืน DX-Ballของ
การคำนวณเสียงแพน

ตรวจสอบคำแนะนำเดิมระบุการป้อนข้อมูลและค่าคงที่แล้วตรวจสอบการกู้คืนซี

คำนวณตำแหน่งเสียงสเตอริโอซ้าย/ขวา

ใน DX-Ball อิฐตีวัสดุตำแหน่งหน้าจอแนวนอน รหัสเสียงเปลี่ยนมันเป็นค่าแพนซ้าย/ขวา

ฟังก์ชั่นเริ่มต้น, 0x00406400 มีผลแยกคอมไพเลอร์สั้น:เรียกฟังก์ชันไป __ftol(). REA งกลับคำแนะนำและเรียกฟังก์ชันซึ่งให้ตัวแทนวิธีการตรวจสอบเลขคณิตที่ขาดหายไป

ใหม่กับเงื่อนไขเหล่านี้?
  • การแนะนำ: ขั้นตอนที่ตัวประมวลผลทำงานแสดงในรูปแบบที่สามารถอ่านเช่น MOV หรือ ADD.
  • ผลลัพธ์การถอดคอมไพเลอร์/รหัสปลอม: ความพยายามของเครื่องมือวิเคราะห์เพื่อเปิดคำแนะนำกลับเป็นโค้ดเหมือนซี มันสามารถพลาดชิ้นส่วนเช่นเดียวกับในตัวอย่างนี้
  • ฟังก์ชันที่เรียก: ฟังก์ชันที่เรียกอันนี้ จะแสดงค่าที่จะส่งผ่านใน
  • ที่อยู่: ตำแหน่งในโปรแกรมเขียนในเลขฐานสิบหกเช่น 0x00406400.
  • ค่าคงที่: ตัวเลขคงที่เก็บไว้ในโปรแกรมอ่านเป็นไบต์ดิบและถอดรหัส

สามชิ้นของหลักฐานหนึ่งการคำนวณ

  1. 01·คำแนะนำอินพุตจำนวนเต็มสแต็คอ่านให้ค่าที่ใช้โดยคำแนะนำจุดลอยตัว
  2. 02·ฟังก์ชันที่เรียกพิกัดหน้าจอฟังก์ชั่นอิฐตีที่เรียกฟังก์ชันนี้ผ่าน 20 + 30 × tile_x.
  3. 03·ไบต์ข้อมูลค่าคงที่เป็นตัวเลขไบต์อ้างอิงถอดรหัสไป 1.5625, 500.0 และค่าสเกล

pan = (x × 1.5625 − 500.0) × scale

REA ให้คำแนะนำ,ความสัมพันธ์การเรียกฟังก์ชันและไบต์. เจ้าหน้าที่ตีความพวกเขาด้วยกัน

ถามเกี่ยวกับพฤติกรรม

หลังจาก การเชื่อมต่อ REA ถึงตัวแทนของคุณ และ การตั้งค่าเครื่องมือวิเคราะห์พื้นเมือง ให้ปฏิบัติการในท้องถิ่นและคำถาม:

ฉันควรใช้เครื่องมือวิเคราะห์ใด

REA การศึกษาและการติว,อังกฤษ(สหราชอาณาจักร),อังกฤษ(สหรัฐอเมริกา):

  • Hopper (macOS หรือ Linux): REAการติดตั้งของตรวจพบหรือมีการติดตั้ง บน macOS,เปิด Hopper ครั้งเดียวและเลือกโหมดการสาธิตหรือเปิดใช้งานใบอนุญาตก่อนการวิเคราะห์ครั้งแรกข
  • Ghidra (macOS หรือ Linux การทดลอง Windows):ฟรีแต่ต้องการที่มีอยู่ Ghidra 12.1.64 บิตเจดีเค 21 หรือใหม่กว่า
  • IDA (Windows):สำหรับที่มีอยู่ IDA การติดตั้งด้วย MCP ลงทะเบียน

เห็นมั้ย ตั้งค่าการวิเคราะห์โปรแกรมเครื่องรหัส สำหรับขั้นตอน

ตัวแทนการเข้ารหัสของคุณ

ใช้ REA เพื่อหาวิธีการ DX-Ball คำนวณเสียงแพน อธิบายการคำนวณและแสดงรหัส

รือไม่ ให้ตัวแทนของคุณเส้นทางไปยังท้องถิ่นของคุณ DX-Ball 1.07 ปฏิบัติการ REA ไม่รวม DX-Ball เพื่อใช้สำเนาของคุณเองหรือถามชนิดเดียวกันของคำถามเกี่ยวกับขนาดเล็กอื่น Windows โปรแกรมที่คุณมี

ฉันจะได้รับเส้นทางเต็มของแฟ้มได้อย่างไร
  • Windows: ในสำรวจแฟ้มให้คลิกขวาที่แฟ้มแล้วเลือก คัดลอกเป็นเส้นทาง. บน Windows 10 กดค้างไว้ในขณะที่การคลิกขวา
  • macOS: ในการค้นหาให้คลิกขวาที่แฟ้มค้างไว้และเลือก คัดลอก"..."เป็นชื่อพาธ.
  • ระบบใดๆ: ลากไฟล์ลงในหน้าต่างเทอร์มินัลและเส้นทางของมันจะปรากฏขึ้น

อ่าน REA ผลลัพธ์

อ่านข้อมูล

REA คำแนะนำ*0*406409
MOV EAX, dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0xc], EAX
FILD dword ptr [EBP + -0xc]

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

ติดตามฟังก์ชันที่เรียก

REA ข้อความที่ตัดตอนมา*0*411เอฟ5 บาท
ADD EAX, 0x14
PUSH EAX
CALL 0x00406400

REA ระบุตัวฟังก์ชันที่เรียกหาอิฐ คำแนะนำก่อนหน้านี้คูณกระเบื้องประสานงานด้วย 30;เพิ่ม 0x14 (20)ให้ตำแหน่งหน้าจอของอิฐ

อ่านค่าคงที่อ้างอิง

REA ผลลัพธ์ไบต์*ตีความว่าเป็นคู่เล็กๆน้อยๆเอนเดียน
0x420068  000000000000f93f  → 1.5625
0x420070  0000000000407f40  → 500.0
0x4210a0  000000000000f03f  → 1.0

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

เขียนและตรวจสอบฟังก์ชั่นการกู้คืน

กู้คืนค*ตัดตอนมา
pan = (double)x;
pan = pan * 1.5625;
pan = pan - 500.0;
pan = pan * dxball_pan_scale;
return (DxBallInt)pan;

ด้วยขนาด 1.0 ตำแหน่งหน้าจอ 0,320 และ 640 แผนที่ -500,0 และ 500 ก่อนที่จะแปลงจำนวนเต็ม การคำนวณทำให้ศูนย์กลางของหน้าจอที่ศูนย์กลางของสนามสเตอริโอ

ตัวแทนที่ใช้ REAการค้นพบที่จะเขียนซีตรวจสอบแยกต่างหากเมื่อเทียบกับ 3,205 ปัจจัยการผลิตกับเดิม 86 ฟังก์ชั่นแ

เครื่องชั่งสำหรับธุรกิจค้าปลีกอาหารเครื่องชั่งคิดราคาเครื่องชั่งติดป้ายราคา

ลองใช้ไบนารีของคุณเอง

เชื่อมต่อการวิเคราะห์ผู้ให้บริการโปรแกรมเครื่องรหัส แล้วให้ตัวแทนของคุณปฏิบัติการในท้องถิ่นหรือห้องสมุดและคุณลักษณะในการตรวจสอบ คำถามเริ่มต้นที่มีประโยชน์รวมถึง"วิธีการคือไฟล์นี้แยก?"หรือ"ฟังก์ชั่นใดที่จัดการกับการกระทำของเมนูนี้”

ถ้าคุณรู้อยู่แล้วว่าชื่อฟังก์ชั่นหรือที่อยู่คุณสามารถสอบถามได้จากขั้ว สำหรับการกำหนดค่า Ghidra การติดตั้ง:

การวิเคราะห์ฟังก์ชัน
npx -y rea-agents@latest function /absolute/path/to/program main \
  --provider ghidra --json

แทนที่เส้นทางเป้าหมายและ main ที่มีชื่อฟังก์ชั่นของคุณเองหรือที่อยู่ แต่ละ CLI การอิมพอร์ตการเรียกใช้และการวิเคราะห์ไบนารีแล้วปิดเซสชัน ตัวแทนของคุณ MCP การสืบค้นข้อมูลใช้ไบนารีที่นำเข้าอีกครั้งในขณะที่เซสชันนั้นเปิดอยู่

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

ด้านบน