Files
rea/docs/readme/README_ar.md
T
4aa51bfe19 fix(reverse): reconcile cleanup ownership and mutation diagnostics (#2799)
* feat(process): add owned debugger shutdown lifecycle

* feat(reverse): add local inspection commands

* feat(gdb): add persistent debugger integration

* feat(cutter): add Cutter bridge integration

* test(reverse): enforce complete integration coverage

* fix(process): preserve debugger shutdown ownership

* fix(reverse): retain evidence across interrupted commands

* fix(gdb): honor captured provider environment

* test(process): cover debugger shutdown retries

* fix(reverse): retain evidence for interrupted providers

* test(process): cover debugger shutdown retries

* fix(reverse): retain evidence for interrupted providers

* fix(server): snapshot provider environment at creation

* fix(reverse): close review gaps with complete coverage

* fix(reverse): address inspection review findings

* fix(gdb): bound sessions and retain cleanup ownership

* fix(ci): require reverse-tools quality lane

* fix(process): unref inherited debugger output pipes

* fix(reverse): address remaining PR 1960 findings

* fix(gdb): address remaining PR 1961 findings

* fix(reverse): account for unrestricted provider execution

* fix(process): retain debugger ownership until safe shutdown

* fix(process): preserve replacement debugger sessions

* fix(reverse): preserve admission and output provenance

* fix(process): retain exited debugger until output settles

* fix(mcp): bound provider admission and debugger cleanup

* fix(reverse): preserve failure provenance and classify E2BIG

* fix(gdb): preserve startup cleanup and detach safety

* fix(process): retain debugger ownership after detach failure

* fix(reverse): preserve mutation and failure provenance

* fix(gdb): address debugger review findings

* fix(reverse): rebind sessions after external mutation

* fix(process): cap debugger output after exit

* fix(gdb): protect one-shot detach verification

* feat(debugger): add reverse tool coverage gate

* test(debugger): cover integrated failure paths

* fix(gdb): bound and preserve session observations

* fix(gdb): address review regressions

* style: format merged integration files

* fix(reverse): preserve session and output evidence

* refactor(gdb): share repeated test and partial result setup

* fix(gdb): invalidate TTY proof for Python aliases

* fix(reverse): retain failure output byte counts

* test(process): synchronize late debugger output

* fix(gdb): invalidate TTY proof for wrapped commands

* fix(gdb): recognize wit command abbreviation

* test(reverse): wait for cancelled descendant readiness

* test(reverse): bound descendant cancellation cleanup

* style(reverse): format integration tests and adapters

* style: format reverse engineering integration files

* test(reverse): remove duplicate environment harness

* test(gdb): share session startup assertions

* fix(gdb): invalidate output proof for command abbreviations

* test(reverse): share composition edge case scenarios

* fix(ci): recognize verification and mutation tool entries

* test(rizin): cover successful fake inferior detach

* test(cli): align full output failure envelope

* test(cli): isolate reverse command lifecycle service

* test(process): share debugger output fixture setup

* fix(binary): preserve high-bit Windows signature bytes

* style(binary): format Windows signature parser

* test(mcp): preserve call coverage in unchanged comparison

* fix(ci): include reverse tools Vitest configs in lint cache

* fix(mcp): preserve target content on delivery errors

* ci: align duplication ceiling with expanded suite

* test(reverse): allow signal admission mutants

* fix(reverse): bound retained cleanup failures to process owners

* fix(test): replace drifting mutation ranges with owned selectors

* fix(reverse): admit persistent commands and retain cleanup ownership

* fix(cutter): recover timed-out commands from exact receipts

* fix(cutter): reject unsupported bridge request kinds

* fix(ci): repair client format and shared verification fixtures

* fix(native): preserve debugger cleanup ownership and bridge authentication

* test(native): retain diagnostics without perfect coverage requirements

* chore(licenses): refresh locked dependency inventory and notices

* fix(test): exclude transient command locks from mutation sandboxes

* fix(gdb): admit only platforms with safe detach verification

* fix(cutter): retain bounded completion receipts until acknowledgement

* fix(cutter): acknowledge commands rejected before UI dispatch

* test(reverse): fail cancellation checks before fixture teardown

* test(gdb): clean up the retained broken-stdin fixture owner

* docs(test): clarify focused provider verification scope

* fix(rizin): retain close cleanup failures

* fix(gdb): wait for inferior stop and bound MI buffering

* fix(cutter): retain failed receipt acknowledgements

* fix(rizin): return retained session identity on rebind failure

* fix(gdb): preserve startup cancellation and lossy status

* fix(rizin): retain launch provenance and assemble frames once

* fix(cutter): recover receipts across callers and bound discovery

* docs: describe debugger evidence and bridge recovery

* fix(process): keep cleanup incomplete while writers remain

Stopping a debugger no longer reports success when inherited output
streams stay open, so BinarySession cannot reopen a binary a child is
still changing. Concurrent Cutter cleanup retries share one receipt
acknowledgement instead of treating a consumed receipt as failure.

* fix(debuggers): recover cleanup with captured process identities

* fix(analysis): retire sessions after unrestricted commands

* fix(cli): preserve completed evidence after cleanup recovery

* fix(cutter): bound frame collection and coalesce cleanup

* fix(windows): resolve selected provider paths absolutely

* fix(gdb): report decoding loss in failed startup evidence

* fix(rizin): scope decoding loss to collected command frames

* test(mcp): cover snapshot retirement in reverse tools CI

---------

Co-authored-by: Daniel Gonçalves Araujo <47118053+dandgabr@users.noreply.github.com>
Co-authored-by: REA Maintainers <noreply@github.com>
Co-authored-by: OpenAI Codex <codex@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-10-14 04:47:34 +08:00

27 KiB

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano

REA: هندسة عكسية لأي شيء

خادم MCP واحد للهندسة العكسية للملفات الثنائية والتطبيقات والسلوك أثناء التشغيل.

وجدت ميزة تعجبك؟ افهم طريقة عملها حتى مستوى الشيفرة الثنائية.

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

الموقع · الأدلة · دراسات الحالة

البدء السريع · كيف يعمل REA · ما الذي يمكنك تحليله · دراسات الحالة · الأسئلة الشائعة · أدوات GNU objdump وRizin · التوثيق

Important

المصادر الرسمية لـ REA: morluto/rea, rea.tools, rea-agents (npm). استخدم روابط التثبيت والإصدارات المنشورة في هذه المصادر الرسمية. تشابه اسم المستودع أو نسخ ملف README لا يثبت أن التنزيل رسمي.

npx rea-agents setup


REA يشغّل جسر التحليل داخل Hopper لفحص ملف ثنائي للشيفرة الأصلية



Discord
انضم إلى مجتمع الهندسة العكسية

Discord · أسئلة وأجوبة · مشاركة النتائج


هل وجدت في تطبيق ميزة تريد إضافتها إلى منتجك؟ اطلب من وكيلك استقصاءها باستخدام REA. يستطيع فحص التطبيق من دون شيفرته المصدرية، وشرح طريقة عمل الميزة وعرض الأدلة، ثم بناء نسخة تناسب مشروعك.

يربط REA وكيلك بأدوات لفحص الملفات الثنائية للشيفرة الأصلية، وتطبيقات JavaScript وElectron، وتجميعات .NET، والمواقع. يمكنك أيضًا استخدام الأدوات نفسها من الطرفية. يجري التحليل محليًا، وتتضمن النتائج الأدلة والقيود التي تستند إليها كل خلاصة.

يسجّل الإعداد REA لدى وكيلك ويثبّت تعليمات سير العمل المطابقة. يمكن لتحليل الشيفرة الأصلية استخدام تثبيت موجود من Hopper أو Ghidra؛ ويمكن للإعداد أيضًا تثبيت Hopper اختياريًا بعد موافقتك. لا يحتاج التحليل الثابت لـ JavaScript إلى أي من المحركين.

زر موقع REA للاطلاع على تعليمات الإعداد والأدلة المصوّرة ودراسات الحالة الفعلية.

البدء السريع

إعداد وكيلك

بعد تثبيت Node.js وnpm، نفّذ:

npx rea-agents setup

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

يدعم الإعداد Claude Code وCodex وCursor وGemini CLI وGrok Build ووكلاء آخرين. راجع التثبيت والإعداد لتهيئة موفّري التحليل وتسجيل MCP يدويًا.

اطلب من وكيلك

استقصِ طريقة عمل البحث في تطبيق Notes، واعرض الأدلة، ثم ابنِ ميزة مشابهة لمشروعي.

استبدل Notes بالتطبيق المستهدف وحدّد الميزة التي تريد فهمها.

استخدام الطرفية

افحص مجلد تطبيق JavaScript/Electron بعد فك حزمه، أو ملف ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

تتضمن النتيجة الوحدات وعمليات الاستيراد وحدود Electron والأدلة المتعلقة بها. استبدل المسار بمسار هدفك، مثل "D:/apps/example" على Windows.

لتثبيت أمر rea للاستخدام المعتاد:

npm install --global rea-agents
rea --help

لتحليل الشيفرة الأصلية، هيّئ موفّرًا أولًا. راجع دليل CLI وEvidence لأوامر تحليل الشيفرة الأصلية، واختيار الموفّر، واللقطات، والاستخدام في السكربتات.

تحديث REA

يتطور REA بسرعة، وتتضمن الإصدارات الجديدة إصلاحات متكررة للأخطاء. حافظ على تحديث نسختك.

لواجهة CLI المثبّتة عبر npm:

rea update

لتحديث تسجيلات الوكلاء والمهارة، نفّذ أمر الإعداد الذي يعرضه التحديث.

إذا كنت تستخدم npx، فحدّث إعداد وكيلك بالأمر التالي:

npx rea-agents@latest setup

راجع تغييرات الإعداد وأعد تشغيل وكيلك. لأوامر CLI التي تنفّذها مرة واحدة، استخدم npx rea-agents@latest متبوعًا بالأمر المطلوب.

كيف يعمل REA

يستدعي وكيلك REA عبر MCP لفحص الهدف وتتبع الشيفرة ذات الصلة. يعيد REA النتائج مع أدلتها. يستخدمها الوكيل لطرح أسئلة متابعة، أو شرح السلوك، أو كتابة تنفيذ واختباره. تستخدم أوامر CLI سير العمل نفسه.

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

افتح الشكل بحجمه الكامل.

ما الذي يمكنك تحليله

يتطلب REA إصدار Node.js 22.x (>=22.19) أو 24.x (>=24.11) أو 26+، إضافة إلى npm. تعتمد الأدوات الإضافية والأنظمة المضيفة المدعومة على الهدف:

الهدف ما يعيده REA المتطلبات والدليل
الملفات الثنائية للشيفرة الأصلية شيفرة شبه برمجية، وتعليمات تجميع، وسلاسل نصية، ورموز، واستدعاءات، ومراجع Hopper أو Ghidra أو IDA؛ تحليل الشيفرة الأصلية
بنية ELF دون تشغيل الأقسام والمقاطع والرموز ومعلومات إعادة التموضع الأصلية، وآليات الحماية المحتملة المستدلّ عليها بالفحص الثابت pwntools يوفّره المستدعي على Linux x64؛ تشخيص الملفات الثنائية
شيفرة EVM البايتية محددات التوجيه، وإزاحات البايتات، والمعاملات المستنتجة، وقابلية تغيير الحالة مدخل محلي يحمل بايتات خامًا أو تمثيلًا سداسيًا عشريًا على Linux x64؛ دليل EVM دون تشغيل
Rust binaries Embedded cargo-auditable dependency list Rust binaries
أعطال Linux المسجّلة سجلات note الخام، ومسجّلات المعالج/الإشارات لكل خيط مسجّل، وترشيحات اختيارية لخرائط الذاكرة pwntools يوفّره المستدعي على Linux x64؛ GDB/pwndbg اختياريان؛ الأعطال المسجّلة
JavaScript / Electron الوحدات، وعمليات الاستيراد، وخرائط المصدر، والمسارات، وIPC، وعلاقات إضافات الشيفرة الأصلية Node.js وnpm؛ تحليل التطبيقات
المواقع بنية الصفحة، والسكربتات، وملاحظات الشبكة، ولقطات الشاشة المطلوبة متصفح من عائلة Chrome؛ تحليل المتصفح
تسجيلات الشبكة المحفوظة الطلبات، والاستجابات، ومحتويات الحمولة المتاحة، ومواضعها في المصدر HAR؛ وmitmdump على Linux لتسجيلات mitmproxy بصيغتها الأصلية؛ دليل تسجيلات الشبكة
التقاط الحزم نقاط النهاية وDNS وTLS SNI وتوزيع البروتوكولات وطلبات HTTP tshark وcapinfos يوفّرهما المُستدعي؛ دليل pcap
تجميعات .NET البيانات الوصفية، وتعليمات CIL، واعتماديات الشيفرة الأصلية المعلنة، ومقارنات البناء فحص ثابت؛ دليل الشيفرة المُدارة
حزم Android APK تصريحات ملف manifest، والأصناف، والدوال الناتجة عن فك الترجمة، والمراجع JADX دون واجهة رسومية وJDK كامل على Linux/macOS/Windows x64؛ دليل Android
أجهزة Android الأجهزة والحزم والعمليات والسجلات والدامبات ولقطات الشاشة ونقل APK/الملفات adb يوفّره المُستدعي (محاكي أو جهاز)؛ دليل ADB
مشاريع JEB وحدات المشروع من المحرك وبصمات المصنّفات والكود الزائف للأنواع/الدوال عميل JEB يبدأه المُستدعي ويقدّم MCP، ويُختار عبر REA_JEB_MCP_URL؛ دليل JEB
موارد Android البيان المفكوك الترميز وجداول السلاسل واللغات وحقائق الإصدار مُشغّل Apktool يوفّره المُستدعي؛ دليل الموارد
تطبيقات Flutter بصمة لقطة Dart وهشوش المكتبات لكل ABI وأصل بناء المحرك لا شيء (تحليل APK ساكن)؛ دليل Flutter
البرامج الثابتة المناطق، ونتائج الاستخراج، وما يُمرّر إلى تحليل الشيفرة الأصلية Binwalk / Unblob على Linux؛ دليل البرامج الثابتة
الحزم المسجلة حقول مختارة وقيم متكررة ومرشحات وقواعد فك الترميز Linux: TShark 4.x + prlimit; دليل التقاط الحزم
الإشارات المنطقية المسجلة تعليقات مفكك الترميز ونطاقات العينات ومعلومات التشخيص Linux: sigrok-cli 0.7.2 + prlimit; دليل الإشارات
الحزم والموارد قوائم الملفات، والبصمات، وملفات plist، وبنية حزم Apple، والموارد المستخرجة دليل تحليل الملفات وJavaScript، تطبيقات Apple
سلوك العمليات مخرجات الطرفية، والتفاعلات، وملاحظات الخروج ونظام الملفات، ومقارنات التشغيل Linux/macOS مع PTY أصلي؛ تسجيل سلوك العمليات

يقرأ الفحص الثابت لـ JavaScript و.NET الملفات المقدّمة دون تشغيل التطبيق. يشغّل التسجيل أثناء التنفيذ الهدف المحدد أو يتفاعل معه بصلاحيات مستخدمك؛ ويشرح كل دليل للتسجيل أثناء التنفيذ آثاره.

تختلف صيغ ملفات الشيفرة الأصلية والأنظمة المضيفة المدعومة باختلاف الموفّر. راجع إعداد Hopper وGhidra، ودليل IDA، ودعم Ghidra التجريبي على Windows. يدعم Ghidra أيضًا تحليل DOS ذي 16 بت. لاختيار الموفّر، راجع دليل CLI. تحقّق من توفر الميزات في الإصدارات للميزات المضافة بعد أحدث إصدار على npm.

دراسات الحالة

رسوم توضيحية لأمثلة توزيع الصوت في DX-Ball وجسر الحافظة في Notion وحلقة الطلقات في TH04

DX-Ball: إعادة بناء حساب توزيع الصوت بين القناتين

تتبّع استدعاء صوت إلى الدالة المساعدة التي تحوّل الموضع إلى توزيع بين القناتين، وافحص التعليمات، وحوّل الشيفرة شبه البرمجية غير المكتملة إلى C. تجتاز إعادة البناء 3,205 حالات اختبار على x86 الأصلي، وتعيد إنتاج جميع بايتات الدالة المترجمة البالغ عددها 63 بايتًا.

اقرأ دراسة الحالة · مستودع إعادة البناء

Notion: تتبّع جسر الحافظة في Electron

اعثر على API الحافظة في عملية العرض، وتتبّعه عبر preload وIPC إلى العملية الرئيسية، وافحص صيغة الحافظة ذات التنسيق الغني.

اقرأ دراسة الحالة

TH04: استعادة حساب حلقة المقذوفات في DOS

افحص تعليمات اللعبة الأصلية على PC-98 ذات 16 بت، واستعد حساب الزوايا الثابتة والموجّهة نحو الهدف، وقارن شيفرة C++ المعاد بناؤها بمخرجات المترجم المستخدم آنذاك.

اقرأ دراسة الحالة · مستودع إعادة البناء

إذا استخدمت REA لفحص هدف مثير للاهتمام، فنود الاطلاع عليه. شارك حالتك في issue أو pull request، مع ذكر الهدف، وسؤالك، وكيف ساعدك REA، وما توصلت إليه.

الأسئلة الشائعة

أي وكلاء يمكنهم استخدام REA؟

أي وكيل يدعم خوادم MCP المحلية. يهيّئ الإعداد الوكلاء المدعومين؛ ويمكن للعملاء الآخرين استخدام تسجيل MCP يدويًا.

هل أحتاج إلى Hopper أو Ghidra أو IDA؟

يستخدم تحليل الشيفرة الأصلية المتعمق أحدها. يعمل الفحص الثابت لـ JavaScript و.NET دون محرك لتحليل الشيفرة الأصلية. يستطيع الإعداد تثبيت Hopper بعد الموافقة؛ أما Ghidra وIDA فيستخدمان تثبيتاتك الموجودة. راجع إعداد الموفّرين.

هل أحتاج إلى تشغيل Hopper أولًا؟

يشغّل REA برنامج Hopper عندما تحتاج العملية إليه. على macOS، قد تظهر عند التشغيل الأول نافذة تطلب اختيار وضع العرض التجريبي أو تفعيل الترخيص. راجع تشغيل Hopper واستكشاف الأخطاء.

ماذا يفعل تثبيت المهارة من skills.sh؟

توفّر المهارة تعليمات الاستقصاء لوكيلك. استخدم npx rea-agents setup لتسجيل خادم MCP الخاص بـ REA وتثبيت التعليمات المطابقة، ثم أعد تشغيل وكيلك. راجع تثبيت المهارة وحدها.

ما الشيفرة التي يعيدها REA؟

يعيد تحليل الشيفرة الأصلية شيفرة شبه برمجية وتعليمات تجميع. يستعيد تحليل JavaScript/Electron الوحدات والعلاقات بينها. يستخدم وكيلك هذه النتائج لكتابة تنفيذ واختباره؛ وتقدّم دراسات الحالة أمثلة عملية.

هل يرفع REA تطبيقي؟

يحلّل REA الأهداف محليًا. يتلقى وكيلك نتائج الأدوات، ولموفّر النموذج الذي يستخدمه سياسة بيانات خاصة به.

ماذا أفعل إذا واجهت خطأ؟

حدّث أولًا؛ فقد يكون إصدار حديث قد أصلح المشكلة بالفعل.

لواجهة CLI المثبّتة عبر npm:

rea update

لإعداد الوكيل عبر npx:

npx rea-agents@latest setup

إذا كنت تستخدم وكيلًا، فأكمل تحديث الإعداد وأعد تشغيله. أعد محاولة المهمة نفسها. إذا استمرت المشكلة، افتح issue يتضمن إصدار REA، ونوع الهدف، وخطوات إعادة الإنتاج، ومخرجات الخطأ.

التوثيق

ابدأ بـ الأدلة العملية على الموقع. للخيارات الدقيقة والمتطلبات وعقود النتائج:

أبلغ عن الثغرات وفق SECURITY.md.

سجل النجوم

🎉 170,000 نجمة على GitHub — شكرًا لكم!

شكرًا لكل من يستخدم REA، ويبلّغ عن الأخطاء، ويقترح ميزات، ويختبر إصدارات البناء، ويساهم بالإصلاحات.

سجل نجوم REA على GitHub

إخلاء المسؤولية

راجع DISCLAIMER.md للحصول على إرشادات الاستخدام المسؤول.

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

The project's position on illegal or unauthorized use covers all REA versions, distribution channels, and platforms; each copy retains its applicable licenses.

المساهمة

نرحّب بمساعدتك في تطوير REA! افتح issue للإبلاغ عن خطأ أو اقتراح ميزة، أو أرسل pull request لتحسين الشيفرة أو التوثيق.

راجع CONTRIBUTING.md لإعداد بيئة التطوير والفحوص، ودليل الاختبار لمسارات التحقق، وخريطة البنية لهيكل المشروع.

الترخيص

MIT

REA-authored code is licensed under MIT. Third-party material retains its own licenses and copyright notices; see Third-party notices for the dependency inventory, preserved license texts, and external-tool terms.

You must legally obtain and be authorized to use commercial tools, including IDA Pro / Hex-Rays decompilers, Hopper, and JEB, under their applicable licenses. REA grants no tool license, key, or activation entitlement. Trials and demos remain subject to vendor terms, including user, feature, automation, and output sharing restrictions. Cracked copies, stolen keys, unauthorized key sharing, and bypassing license restrictions are not authorized. This guidance does not amend MIT or third-party licenses.