شو هي REA، وشو بتقدر تفكّك
الرابط: github.com/morluto/rea · الموقع الرسمي rea.tools · الحزمة على npm اسمها rea-agents (الإصدار 6.8.0 يوم 2026-10-25). الفكرة بجملة من الـ README نفسه: «شفت ميزة بتطبيق بدك ياها بمنتجك؟ اطلب من وكيلك يحقّق فيها بـ REA: بيفحص التطبيق بدون الكود المصدري، بيشرح كيف بتشتغل، بيعرض الدليل، وبيبني نسخة لمشروعك».
تقنياً: REA سيرفر MCP واحد (نفس البروتوكول اللي بيربط Claude Code بأي أداة خارجية) فيه أكثر من 170 أداة تحليل. Claude Code بيستدعيها لحاله: بيفتح التطبيق، بيقرأ وحداته، بيتتبّع الاستدعاءات، وبيرجّع لك النتيجة مع الدليل والحدود لكل استنتاج. التحليل بيصير على جهازك. وبتقدر تستعمل نفس الأدوات من الطرفية بدون أي وكيل.
شو بتقدر تحلل (من جدول الـ README يوم 2026-11-02؛ الأهم للناس العاديين أول ثلاث صفوف):
| الهدف | شو بترجّع لك REA | شو بتحتاج |
|---|---|---|
| تطبيقات JavaScript وElectron (مثل Slack، Notion، VS Code) | الوحدات، الاستيرادات، source maps، المسارات، قنوات IPC بين الواجهة والنواة، والإضافات الأصلية | Node وnpm بس، بدون أي محرّك إضافي |
| مواقع | بنية الصفحة، السكربتات، الطلبات الشبكية، ولقطات شاشة | متصفح من عائلة Chrome |
| .NET | البيانات الوصفية، تعليمات CIL، الاعتماديات الأصلية، ومقارنة إصدارين | ولا شي (تحليل ساكن) |
| ملفات تنفيذية أصلية (exe، dmg، ELF) | كود مزيّف (pseudocode)، assembly، نصوص، رموز، استدعاءات ومراجع | محرّك: Hopper أو Ghidra أو IDA أو Kuna |
| تطبيقات أندرويد (APK) | البيان، الأصناف، الدوال المفكّكة والمراجع | JADX + JDK كامل |
| تسجيلات شبكة محفوظة (HAR) | الطلبات، الردود، الحمولات المكشوفة، وأماكنها بالكود | ملف HAR من أدوات المطوّر بالمتصفح |
| سلوك التشغيل (process capture) | المخرجات، التفاعلات، الخروج، وتغييرات الملفات، ومقارنة تشغيلين | لينكس أو ماك |
فيه كمان دعم لملفات Go وRust وWASM وFlutter وFirmware وقواعد SQLite وغيرها (القائمة الكاملة بالـ README). ولو هدفك مش ميزة واحدة بل نسخ تطبيق كامل بواجهتك: هاد موضوع دليل «نسخة»؛ REA بتشتغل بالعكس: ميزة واحدة، بعمق، من الداخل.
الحدود القانونية أولاً
اللي المشروع بيرفض يساعد فيه صراحة، وإنت كمان لا تطلبه من Claude:
- تجاوز حماية النسخ أو فحص الرخصة أو أنظمة مكافحة الغش (DRM، license checks، anti-cheat).
- غشّ الألعاب أو العبث بخدمات أونلاين.
- تجاوز تسجيل الدخول أو حماية البوتات على أنظمة ما عندك إذن تختبرها.
- نسخ برنامج مملوك لغيرك أو إعادة إنتاج كوده المحمي وأصوله (الصور، الأيقونات، الخطوط…).
- التحايل على سياسات مزوّدي الذكاء الاصطناعي، أو بيع ومشاركة حسابات ومفاتيح API.
القاعدة اللي بتخلّيك بالأمان: تفهم الآلية، وتبني نسختك بكودك. الكود المفكّك مرجع للفهم، مش شي بتلصقه بمشروعك. ولما تطلب من Claude يبني الميزة، قوله صراحة «كود جديد كلّه إلنا، بدون نسخ أي سطر أو اسم أو أصل من التطبيق الأصلي» (البرومبت جاهز بالقسم 5).
شو بتحتاج على جهازك
- Claude Code مركّب وشغّال. لسا ما ركّبته؟ دليل تركيب Claude Code.
- Node.js بإصدار مدعوم: 22.x (من 22.23.4) أو 24.x (من 24.22.1) أو 26.12.1 وما فوق، ومعه npm. الإصدارات 23 و25 غير مدعومة. افحص:
node -v
npm -v
- ماك أو ويندوز أو لينكس. على لينكس لازم أمر ps من حزمة procps (موجود بأغلب التوزيعات).
- محرّك تحليل، اختياري: بس للملفات التنفيذية الأصلية. Hopper (تجاري، بيشتغل بوضع تجريبي، ماك ولينكس) أو Ghidra (مجاني من NSA؛ على ويندوز الدعم تجريبي) أو IDA (تجاري) أو Kuna. تطبيقات JavaScript وElectron والمواقع و.NET ما بدها أي محرّك، وهاي أغلب اللي رح تحتاجه.
- متصفح من عائلة Chrome لتحليل المواقع.
أمر واحد بيعمل كل شي، أو إضافة من داخل Claude Code. اختار طريقة وحدة.
أمر واحد: npx rea-agents setup
الطريقة الرسمية. افتح الطرفية بمجلد عادي (مش مجلد التطبيق اللي بدك تحلله) وشغّل:
npx rea-agents@latest setup
شو بيصير بعدها:
- npm بيسألك يحمّل الحزمة: وافق.
- REA بتعرض قائمة الوكلاء اللي لقتهم على جهازك (Claude Code، Codex، Cursor، Gemini CLI…): اختار Claude Code.
- بتعرض لك خطة التغييرات بالتفصيل: المسارات اللي رح تكتب فيها، ونسخة احتياطية لأي إعداد موجود. راجعها ووافق.
- بتسألك عن Hopper (محرّك الملفات التنفيذية): اختياري، وإلو موافقة لحاله. قول لأ إذا بدك تبدأ بـ JavaScript والمواقع.
- أعد تشغيل Claude Code.
اللي انكتب فعلياً عندك: سيرفر MCP اسمه rea بملف ~/.claude.json (مستوى المستخدم، يعني بيشتغل بكل مشاريعك)، ومهارة (Skill) اسمها reverse-engineer-anything بمجلد ~/.claude/skills فيها تعليمات التحقيق اللي Claude بيمشي عليها.
بدك تقفز سؤال اختيار الوكيل، أو تشوف الخطة بدون ما تكتب شي؟
npx rea-agents@latest setup --client claude_code
npx -y rea-agents@latest setup --client claude_code --dry-run
بديل: إضافة من داخل Claude Code
REA موجودة كإضافة (plugin) رسمية لـ Claude Code: نفس السيرفر ونفس المهارة، بس التركيب من داخل الجلسة بدون npx. السوق اسمه rea والإضافة اسمها rea:
/plugin marketplace add morluto/rea
/plugin install rea@rea
الفروقات اللي لازم تعرفها (من وثائق REA):
- وحدة من الثنتين. الإضافة أو أمر setup، مش الاثنين: بيصير عندك سيرفرين اسمهم rea.
- الإضافة ما بتعمل setup. يعني إعداد المحرّكات (Hopper/Ghidra) بيضل عليك يدوياً لو احتجتهم.
- أمر rea ما بيصير بالطرفية. لو بدك تفحص شي من الطرفية استعمل npx -y rea-agents@6.8.0 … بنفس إصدار الإضافة.
- rea doctor ما بيشوف الإضافة. بيقول لك «missing» وبينصحك بـ setup: تجاهله، وافحص من Claude Code نفسه (القسم الجاي).
- التحديث مع الإضافة. كل إصدار جديد بيحدّث الإضافة والسيرفر مع بعض من قائمة /plugin.
تأكد إنها شغالة
داخل جلسة Claude Code (بعد إعادة التشغيل)، ومن الطرفية:
/mcp
claude mcp list
claude mcp get rea
claude plugin list
بـ /mcp لازم تشوف سيرفر rea متصل وجنبه عدد الأدوات. claude mcp list بيطبع ✔ Connected أو ✘ Failed to connect لكل سيرفر، وclaude mcp get rea بيعرض تفاصيله وسبب الفشل لو فشل. الأمر الأخير للإضافة بس.
فحص أعمق من REA نفسها (للقراءة فقط، ما بيغيّر شي؛ لطريقة setup مش للإضافة):
npx -y rea-agents@latest doctor --client claude_code --skill --json
ملاحظة على السياق: REA بتعلن أكثر من 170 أداة. Claude Code ما بيحمّل تعريفاتها كلها بكل رسالة، بيستعمل «البحث عن الأدوات» (tool search) وبيجيب الأداة لما يحتاجها، فما تخاف على سياق الجلسة. وبتقدر تسأل Claude مباشرة: «شو أدوات REA المتاحة عندك؟» وبيعدّدها.
من أول سؤال لحد ميزة مبنية بمشروعك.
أول سؤال: برومبتات جاهزة بالعربي
افتح Claude Code بمجلد مشروعك (اللي بدك تبني فيه الميزة)، واكتب سؤالك عادي بالعربي. اذكر كلمة REA عشان يروح على الأداة مباشرة، واعطيه اسم التطبيق أو مساره الكامل والميزة المحدّدة. هاد المثال الرسمي من الـ README، ونفسه بالعربي وأمثلة ثانية:
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.
استعمل REA: افهم كيف ميزة البحث بتطبيق Notes على جهازي بتشتغل، اعرض لي الدليل خطوة خطوة، وبعدها ابنِ ميزة مشابهة لمشروعي.
استعمل REA على تطبيق Electron الموجود بالمسار "C:/Users/me/AppData/Local/Programs/MyApp": كيف بيحفظ الإعدادات محلياً؟ وشو قنوات IPC اللي بتشتغل لما أضغط «حفظ»؟
استعمل REA على الموقع https://example.com: شو السكربتات اللي بتشتغل عند الضغط على زر «أضف للسلة»، ولوين بيروح الطلب؟ اعرض الطلبات الشبكية والدليل.
استعمل REA على الملف "/Applications/Tool.app": فكّك دالة تصدير PDF واشرح لي الخوارزمية بالعربي، وميّز بين اللي متأكد منه واللي بتخمّنه.
بدّل الأسماء والمسارات بتبعك. المسار لازم يكون كامل (مطلق)، مش نسبي. وكل ما كانت الميزة أضيق («زر التصدير» بدل «التطبيق كله») كان التحقيق أسرع وأرخص.
REA بتعرّف 6 مسارات تحقيق جاهزة كأوامر داخل Claude Code (بتظهر لما تكتب / بصيغة /rea:investigate_feature (MCP)، وبتستدعيها هيك):
/mcp__rea__investigate_feature
/mcp__rea__compare_application_versions
/mcp__rea__trace_crash
/mcp__rea__verify_reconstruction
/mcp__rea__audit_residual_unknowns
/mcp__rea__prepare_bounded_process_capture
| المسار | امتى تستعمله |
|---|---|
| investigate_feature | الأساسي: تتبّع ميزة من اكتشافها لحد الدوال اللي بتنفّذها، مع الدليل |
| compare_application_versions | شو تغيّر بين إصدارين من نفس التطبيق |
| trace_crash | ربط انهيار (crash) بالمسار اللي سبّبه بالكود |
| verify_reconstruction | بعد ما تبني نسختك: مقارنتها بسلوك الأصل بناءً على الدليل المحفوظ |
| audit_residual_unknowns | مراجعة الأشياء اللي لسا مش مفهومة بالتحقيق |
| prepare_bounded_process_capture | تصميم تجربة تشغيل محدودة وآمنة قبل ما تنفّذها |
شو بيرجّع لك، وكيف تبني الميزة لمنتجك
REA ما بترجّع «الكود المصدري» للتطبيق، لأنه مش موجود أصلاً. اللي بترجّعه حسب نوع الهدف: لتطبيقات JavaScript وElectron الوحدات وعلاقاتها والمسارات وقنوات IPC؛ للملفات التنفيذية كود مزيّف (pseudocode) وassembly. ومع كل نتيجة الدليل (وين لقته بالضبط) والحدود (شو ما قدر يتأكد منه). تعليمات المهارة بتطلب من Claude يفصل دايماً بين ثلاث أشياء: ملاحظة، استنتاج، ومجهول. لما تقرأ التقرير دوّر على هالثلاثة.
بعد ما تفهم الآلية، هاد البرومبت للبناء (بدّل الـ stack بتبعك):
بناءً على اللي اكتشفته بـ REA، ابنِ نفس الميزة بمشروعي (Next.js + Postgres) بكود جديد كلّه إلنا. رتّبها هيك: 1) وصف الآلية بالعربي بثلاث فقرات، 2) الكود، 3) اختبارات بتغطي الحالات اللي شفناها بالتحقيق. ممنوع تنسخ أي سطر أو اسم متغيّر أو ملف أو أصل من التطبيق الأصلي.
خلّصنا؟ استعمل مسار verify_reconstruction وقارن سلوك نسختنا بالدليل اللي جمعته: شو مطابق، شو ناقص، وشو مجهول.
أمثلة حقيقية من المشروع (صفحة Showcases على rea.tools): إعادة بناء دالة الصوت بلعبة DX-Ball من الـ assembly بحيث تطابق 3,205 حالة اختبار؛ تتبّع جسر الحافظة بتطبيق Notion من الواجهة عبر preload وIPC لحد النواة؛ واستعادة حسابات الزوايا بلعبة DOS قديمة. اقرأها عشان تعرف شكل تحقيق كامل قبل ما تبدأ تحقيقك.
من الطرفية بدون Claude
نفس الأدوات بتشتغل كأوامر. أكثر أمر بينفعك: تحليل مجلد تطبيق JavaScript أو Electron (مفكوك، أو ملف asar) وطباعة النتيجة كـ JSON، بدون أي محرّك:
npx -y rea-agents@latest analyze-javascript-application "D:/apps/example" --json
للاستعمال الدائم ركّبها عالمياً وبيصير عندك أمر rea:
npm install --global rea-agents
rea --help
rea guided-workflows
rea doctor --json
الأمر الثالث بيعدّد مسارات التحقيق الستة، والرابع بيفحص جهازك (Node، المحرّكات، التسجيلات) بدون ما يغيّر شي. تحليل الملفات التنفيذية من الطرفية بده محرّك مضبوط أولاً (دليل CLI بالمستودع: docs/cli.md).
التحديث والإزالة
الـ README بيقول بوضوح: REA بتتغيّر بسرعة والإصدارات الجديدة فيها إصلاحات كثيرة، فحدّث قبل ما تفتح أي مشكلة. حسب طريقة تركيبك:
| ركّبتها بـ | التحديث | الإزالة |
|---|---|---|
| npx setup | npx rea-agents@latest setup (راجع الخطة ووافق، ثم أعد تشغيل Claude Code) | npx rea-agents@latest uninstall |
| تركيب عالمي | rea update ثم أمر setup اللي بيطبعه | rea uninstall (مع --purge-data بيحذف الكاش والحالة كمان) |
| الإضافة | من قائمة /plugin داخل Claude Code | من نفس القائمة (uninstall) |
الإزالة بتشيل تسجيلات REA والمهارة بس: Hopper وNode وملفات الأدلة اللي جمعتها وباقي سيرفرات MCP بتضل. ولو بدك تشيل التسجيل من Claude Code يدوياً بدون أي أداة:
claude mcp remove rea --scope user
الأخطاء اللي بتصير بأول أسبوع، وشو المجاني بالضبط.
أخطاء بتضيّع وقتك
تنبيهات صدق
- استهلاك Claude من اشتراكك. التحقيق كلام كثير بين Claude والأداة؛ السؤال الضيّق بيوفّر عليك.
- التحليل محلي، بس النتائج بتروح لـ Claude. الـ README بيقولها: REA ما بترفع تطبيقك لحدا، لكن وكيلك بيستلم نتائج الأدوات، وسياسة بيانات مزوّده (Anthropic هون) هي اللي بتنطبق عليها.
- محرّكات الملفات التنفيذية مش كلها مجانية. Ghidra مجاني. Hopper وIDA وJEB تجاريين ولازم ترخيص قانوني (المشروع بيرفض النسخ المكسورة صراحة). Kuna بديل إضافي.
- ويندوز: تطبيقات JavaScript وElectron و.NET والمواقع وأندرويد بتشتغل كاملة. الملفات التنفيذية محدودة: Hopper مش موجود لويندوز، وGhidra عليه تجريبي.
- «أي تطبيق» = الأنواع اللي بالجدول. تطبيقات أندرويد نعم (APK مع JADX). تطبيقات iOS: فحص الحزمة ومواردها، مش تفكيك كامل.
- الرقم بالريل. 410 ألف+ نجمة يوم تسجيل الريل؛ يوم 2026-11-02 صار 422,454.
أسئلة شائعة
بتشتغل على ويندوز؟
لازم أركّب Hopper أو Ghidra؟
بترفع تطبيقي لحدا؟
بتقدر تنسخ لي تطبيق كامل؟
شو الفرق عن إني أسأل Claude عادي كيف الميزة معمولة؟
ركّبت الإضافة وأمر rea مش موجود بالطرفية
npx -y rea-agents@6.8.0 doctor --json بنفس إصدار الإضافة، أو ركّبها عالمياً (القسم 6). وتذكّر إنه rea doctor ما بيشوف الإضافة أصلاً؛ افحصها من /mcp.قديش بتستهلك من اشتراك Claude؟
rea setup --client claude_code --tool-families مع الأسماء من دليل MCP بالمستودع.