حساب اليسار / اليمين ستيريو الصوت لتحديد المواقع
في DX-Ball، ضربة لبنة توفر وضع شاشة أفقي. يحولها رمز الصوت إلى قيمة تحريك يسار/يمين.
وظيفة البداية, 0x00406400، له نتيجة قصيرة لمفك التحويل: دعوة إلى __ftol(). REA كما يعود تعليماته والدوال المستدعية ، والتي تعطي وكيل وسيلة للتحقيق في الحساب المفقود.
جديد على هذه الشروط?
-
التعليمات: الخطوات التي يقوم المعالج بتشغيلها ، تظهر في شكل قابل للقراءة مثل
MOVأوADD. - نتيجة فك التحويل البرمجي / الكود الكاذب: محاولة أداة تحليل لتحويل التعليمات مرة أخرى إلى ج مثل التعليمات البرمجية. يمكن أن تفوت أجزاء ، كما في هذا المثال.
- الدالة المستدعية: وظيفة تستدعي هذا. فإنه يدل على القيم التي يتم تمريرها في.
-
العنوان: موقع في البرنامج ، مكتوب بلغة سداسية عشرية ، مثل
0x00406400. - الثوابت: الأرقام الثابتة المخزنة في البرنامج ، وقراءة بايت الخام وفك الشفرة.
ثلاث أدلة ، حساب واحد
- 01 * تعليماتإدخال عدد صحيحتوفر قراءة المكدس القيمة المستخدمة بواسطة تعليمات الفاصلة العائمة.
-
02 * الدالة المستدعيةتنسيق الشاشةوظيفة ضرب الطوب التي تستدعي هذه الوظيفة تمر
20 + 30 × tile_x. -
03 * بايت البياناتالثوابت الرقميةبايت المشار إليها فك شفرة ل
1.5625,500.0وقيمة مقياس.
pan = (x × 1.5625 − 500.0) × scale
اسأل عن السلوك
بعد الاتصال 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: في الباحث ، انقر بزر الماوس الأيمن فوق الملف ، وعقد الخيار واختيار نسخ " as " كاسم مسار.
- أي نظام: اسحب الملف إلى نافذة طرفية ويظهر مساره.
قراءة REA النتائج
قراءة المدخلات
MOV EAX, dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0xc], EAX
FILD dword ptr [EBP + -0xc]
تقوم التعليمات بتحميل وسيطة عدد صحيح وتحويلها لحساب الفاصلة العائمة. هذا هو الإدخال الغائب عن عرض الكود الكاذب الأول.
اتبع الدالة المستدعية
ADD EAX, 0x14
PUSH EAX
CALL 0x00406400
REA يحدد الدالة المستدعية ضرب الطوب. تعليماته السابقة تضاعف إحداثيات البلاط في 30 ؛ مضيفا 0x14 (20) يعطي موقف شاشة الطوب.
قراءة الثوابت المشار إليها
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شيكات منفصلة مقارنة 3205 المدخلات ضد وظيفة س 86 الأصلي واستنساخها كل 63 بايت المترجمة من وظيفة كاملة.
تحاول ذلك مع ثنائي الخاصة بك
ربط تحليل مزود برامج رمز الجهاز، ثم امنح وكيلك ملف تنفيذي محلي أو مكتبة وميزة للتحقيق فيها. تتضمن أسئلة البداية المفيدة "كيف يتم تحليل هذا الملف?"أو" ما هي الوظيفة التي تتعامل مع إجراء القائمة هذا?”
إذا كنت تعرف بالفعل اسم دالة أو عنوانا ، فيمكنك الاستعلام عنه من الجهاز. للحصول على تكوين Ghidra تركيب:
npx -y rea-agents@latest function /absolute/path/to/program main \
--provider ghidra --json
استبدل المسار المستهدف و main مع اسم الوظيفة أو العنوان الخاص بك. كل CLI يستورد الاحتجاج ويحلل الثنائي ، ثم يغلق جلسته. وكيلك MCP استعلامات إعادة استخدام ثنائي المستوردة في حين أن الدورة مفتوحة.
اقرأ الكود الكاذب جنبا إلى جنب مع التعليمات والمراجع. عندما تترك نتيجة استدعاء دالة أو قيمة دون حل ، استخدم هذا الموقع كسؤال تالي.