في هذه الصفحة

الهندسة العكسية ، مع مساعدك البرمجي

اكتشف كيف
تعمل البرامج.

يوفّر REA لمساعد البرمجة لديك أدوات لفحص البرنامج وشرح ما يفعله.

تعرف بالفعل إعادة? تخطي إلى أدلة التحليل →

تريد أن تذهب أعمق? اقرأ المدونة Blog

إعداد REA

انسخ هذا الطلب إلى مساعد البرمجة لديك:

مساعدك البرمجي

ثبّت REA واربطه بمساعد البرمجة هذا باستخدام npx rea-agents@latest setup. اعرض خطة الإعداد أولاً وانتظر موافقتي، ثم تحقّق من التثبيت.

أو نفّذ هذا الأمر في الطرفية:

npx rea-agents@latest setup

راجع خطة الإعداد ووافق عليها، ثم أعد تشغيل المساعد.

أول مرة ، أو مفقود Node.js أو المساعد البرمجي? اتبع دليل الإعداد خطوة بخطوة →

ما هي الهندسة العكسية؟

فهم طريقة عمل البرنامج من خلال فحص البرنامج نفسه.

الهدف: فهم ميزة جيدا بما فيه الكفاية ل اشرح ذلك, تغيير ذلك أو إعادة بنائه.

مثلاً: لماذا تعطي الآلة الحاسبة 220 عند حساب 200 + 10%؟

قبل REA · تبحث بنفسك

الأصل · 64 * تعليمات مختارة
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

يمكنك فك التعليمات ، اتبع المكالمات وظيفة وإعادة بناء الحساب.

مع REA · تسأل مساعدك

طلب واحد فقط.

اسأل المساعد بكلمات بسيطة.

مثال موجه * آلة حاسبة

استخدام REA لتفقد Windows آلة حاسبة. لماذا 200 + 10% منح 220?

مثال على الإجابة * بناء على النتائج

بعد + ، يأخذ زر ٪ نسبة مئوية من الرقم الأول.

10% of 200 = 20200 + 20 = 220
ما يوفّره REA
تعليمات المعالج ، رمز فك والمكالمات.
ما يشرحه المساعد
أي فرع ينطبق ، ما يحسب وكيفية إعادة بنائه.
التجمع المحدد من دلل آلة حاسبة مثبتة. الأفكار والرد توضح النتائج. تواصل مع مثال الآلة الحاسبة ↓

دعونا نحاول مثالين. تغيير سرعة اللعبة ، ثم العودة إلى آلة حاسبة وإعادة بناء زر ٪ لها.

مثال 01 · Chromeلعبة الديناصورات

لماذا يصبح الديناصور أسرع؟

الهدف
إعادة بناء اللعبة مع سرعة قابلة للتعديل.
لماذا عكس هندسة ذلك?
لإعادة إنتاج تسارعها ، نحتاج إلى القاعدة في لعبة الجري: مدى سرعة يبدأ ، وكم يزيد وعندما يتوقف.

جرّب اللعبة المعاد بناؤها

6 → 10 → 13

القاعدة الأصلية: ابدأ من 6 ، ثم زد نحو 13.

حرك شريط التمرير لضبط السرعة الخاصة بك. الفضاء أو القفز يزيل الصبار.

ما أعاده REA

البرنامج النصي قيد التشغيل بالفعل في الصفحة. يقرأ الوكيل وظيفة التحديث وإعدادات السرعة ، ثم يستخدم هذه القاعدة في لعبة جديدة.

مثال موجه * لعبة ديناصور

استخدام REA لتفقد هذه اللعبة ديناصور. لماذا لا تحصل على أسرع? عرض قاعدة السرعة ، ثم بناء نسخة صغيرة مع سرعة قابل للتعديل.

الهدف الذي تم فحصه: وايو Chromium- مستمد متصفح الطبعة.

REA * تحميل index.js * خطوط مختارة
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

تبدأ في 6. إضافة 0.001 كل تحديث دون تصادم ، في حين أن السرعة أقل 13.

افتح مختبر السرعة →

ماذا يفعل كل جزء

  1. 01 · REAاقرأ البرنامج النصي للعبة الجريإرجاع الرمز الفعلي والإعدادات إلى الوكيل.
  2. 02 * وكيلكإعادة بناء القاعدة ، إضافة عنصر تحكماستخدم التسارع المسترد في لعبة صغيرة مع شريط تمرير السرعة.
  3. 03 * أنتتغيير السرعة واللعبجرب التسارع الأصلي ، ثم اختر وتيرتك الخاصة.
راجع البرنامج النصي والشيكات وكيفية تجربة التحليل

REA تفقد إصدار متصفح هتب من خلال اتصال التصحيح المحلي وعاد تحميلها index.js، بما في ذلك مصدرها وهضمها.

الإعدادات المحددة من البرنامج النصي الذي تم فحصه
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

اتصلنا بوظيفة تحديث اللعبة الأصلية في فحص متصفح متحكم فيه ، مع تعطيل العقبات والجدولة التلقائية. بعد 4000 تحديث ، كانت السرعة 10.0 ؛ بعد 10000 ، كان 13.0 ، مقربا إلى رقم عشري واحد.

تحافظ اللعبة المصغرة الجديدة على قاعدة السرعة هذه. يعد رمز الرسم والقفز والتصادم تطبيقا تعليميا صغيرا. افتح المختبر لرؤية رمز جديد وتشغيل نفس الاختيار السرعة.

لتفقد الهدف بنفسك ، اتبع خطوات اتصال المتصفح باستخدام صفحة الديناصورات. امنح وكيلك عنوان ورل للصفحة ونقطة نهاية التصحيح المحلية ، ثم انسخ المطالبة أعلاه.

فحص رمز السرعة · Chromium الكتاب * رخصة بسد

مثال 02 · Windows آلة حاسبة

أعد بناء زر % في الآلة الحاسبة.

رأينا لماذا 200 + 10% يعطي 220. الآن دعنا نستعيد القواعد لكل من + و × ، ونجربها.

الهدف
بناء آلة حاسبة صغيرة أن يعالج كلا + و correctly بشكل صحيح.
لماذا عكس هندسة ذلك?
يستخدم نفس الزر قواعد مختلفة بعد + و ×. نقوم بفحص التطبيق المثبت للعثور على الرقم الذي يتم تطبيق النسبة عليه.

جرب الحساب

200 + 20

10 ٪ من 200 = 20. ثم 200 + 20 = 220.

توضيح تفاعلي لقاعدة النسبة المئوية التي تم فحصها.

ما أعاده REA

فرع واحد يقسم على 100. الآخر يتضاعف أيضا في الرقم الأول. يستخدم الوكيل كلاهما لإعادة إنشاء الزر٪.

لهذا المثال, previous = 200 و current = 10.

مثال موجه * إعادة بناء زر ٪

استخدام REA لتفقد Windows زر ٪ آلة حاسبة. استعادة القواعد بعد + و × ، ثم بناء آلة حاسبة صغيرة تستخدم على حد سواء.

ملخص مقروء لمعالج ٪
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
مع +
خذ 10٪ من الرقم الأول.10% of 200 = 20 → 200 + 20 = 220
مع ×
تحويل 10 ٪ إلى 0.1.200 × 0.1 = 20

من التطبيق المثبت إلى زر ٪ العمل

  1. 01 · REA يقرأ calc.exeتطلق تطبيق الآلة الحاسبةيفتح الرمز ms-calculator:. ثم يقوم الوكيل بتحديد مكتبة التطبيق المثبت.
  2. 02 · REA يقرأ المكتبةإرجاع رمز المعالج ٪ تتحقق الوظيفة من المشغل وتستخدم الثابت 100.
  3. 03 * وكيلك يفسر ذلكشرح وإعادة إنتاج القواعدتحقق من الفرع مع مصدر مايكروسوفت ، ثم حاول + و × أعلاه.
انظر الرمز الحقيقي وكيف تم التحقق من الإجابة
REA * تعليمات أصلية مختارة
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
معرفات المشغل * مصدر مايكروسوفت
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

تفتيشها مع REA 4.1.0: Windows آلة حاسبة 11.2508.4.0, س 64. يستخدم الملخص المقروء أسماء من المصدر العام لمايكروسوفت لشرح الفرع المسترد.

النسبة المئوية للتنفيذ · حالات اختبار مايكروسوفت · دليل الإعداد الأصلي

التحقيق الأول الخاص بك

حاول REA على تطبيق صغير.

تحميل ملاحظاتنا سبيل المثال ، تتبع لها CSV تصدير ، وتحقق من إدخال واحد تم تغييره.

جرب المثال الإرشادي

هل تريد التعمّق أكثر؟

أخبر وكيلك بما تريد فهمه أو بنائه. مع REA، يمكنك العمل معا على أي شيء من استنساخ هذا الموقع إلى إعادة بناء لعبة من تنفيذها.

مثال موجه * الموقع

استخدام REA لتفقد https://rea.tools/. استنساخ هذا الموقع بالنسبة لي.

نعم ، هذا واحد.

مثال موجه * إعادة بناء اللعبة

استخدام REA لإعادة بناء هذه اللعبة من تنفيذها. استعادة منطق اللعب في ج واختباره ضد الأصلي.

انظر ال DX-Ball دراسة حالة case

لخطوات الإعداد والتحليل ، اختر هدفك:

برامج كود الآلة

فحص الوظائف والسلاسل والمراجع وعلاقات استدعاء الوظائف في الملفات التنفيذية والمكتبات.

تحليل دليل برامج كود الآلة

JavaScript & Electron

وحدات الخريطة ، والطرق ، والتصنيف الدولي للبراءات والتبعيات الأصلية من مجلد التطبيق أو ASAR أرشيف.

سير عمل التطبيق

نشاط المتصفح ووقت التشغيل

التقط المتصفح المحدد أو نشاط العملية ، ثم قارن النتائج عبر عمليات التشغيل.

دليل مراقبة المتصفح

لديك أسئلة؟

قراءة التعليمات, الدردشة معنا على Discord، أو افتح أ GitHub القضية لالبق وطلبات الميزة.

انضم إلى المجتمع

تبادل التحقيقات والحصول على مساعدة من الآخرين REA المستخدمين على Discord. اتبع REA على س للحصول على تحديثات المشروع.

أعلى