سيُنشر هذا المقال قريباً
موعد النشر: 2026-10-18 06:43
سيظهر المقال تلقائياً عند حلول الموعد — لا حاجة لإعادة التحميل.
عندما تصبح الهندسة العكسية في متناول الجميع
لطالما كانت الهندسة العكسية (Reverse Engineering) حكراً على نخبة من الخبراء الذين يتقنون لغة التجميع (Assembly)، ويجيدون استخدام أدوات معقدة مثل Ghidra و IDA Pro و Hopper. كان السؤال “كيف يعمل هذا البرنامج؟” يعني شهوراً من تحليل التعليمات البرمجية الثنائية، وتتبع تدفق البيانات، وفهم البنى الداخلية. لكن في أكتوبر 2026، تغير كل شيء مع ظهور مشروع REA (اختصار Reverse Engineer Anything).
خلال أيام قليلة من إطلاقه، تجاوز عدد النجوم على GitHub مئات الآلاف، محطماً الأرقام القياسية ومثيراً جدلاً واسعاً حول مستقبل البرمجيات الاحتكارية . في هذا المقال، نستعرض ما هو REA، وكيف يعمل، ولماذا يعتبره البعض ثورة، بينما يرى آخرون فيه تهديداً خطيراً.
🔗 الموقع الرسمي: rea.tools 🔗 المستودع الرسمي: github.com/morluto/rea
ما هو REA؟
REA ليس أداة هندسة عكسية جديدة. إنه جسر (Bridge) يربط بين وكلاء البرمجة بالذكاء الاصطناعي (مثل Claude Code، Cursor، Codex، Gemini CLI) وبين أدوات الهندسة العكسية الاحترافية الموجودة بالفعل على جهازك . يقوم REA بتثبيت خادم MCP (Model Context Protocol) يسمح للوكيل باستدعاء هذه الأدوات، وتحليل الملفات التنفيذية، واستخراج الأدلة، ثم استخدامها للإجابة على أسئلتك أو حتى إعادة بناء الميزة التي تريدها .
ببساطة: أنت تسأل الوكيل “كيف يعمل زر النسخ في تطبيق Notion؟”، فيقوم الوكيل باستخدام REA لتحليل الكود الثنائي، واستخراج الأدلة، وشرح الآلية، وربما مساعدتك في كتابة كود مماثل لتطبيقك.
كيف يعمل؟ (المعجزة التقنية)
الآلية تعتمد على ثلاث ركائز:
- وكلاء البرمجة (Agents): أنت تستخدم وكيلاً مثل Claude Code أو Cursor، وهو الذي يفهم لغتك الطبيعية ويقوم بتنسيق المهمة.
- أدوات التحليل (Analysis Engines): REA يتصل بأدوات مثل Ghidra (مفتوح المصدر)، أو Hopper (تجاري مع نسخة تجريبية)، أو IDA Pro (تجاري) لتحليل الملفات التنفيذية الأصلية (Native Binaries) . بالنسبة لتطبيقات JavaScript و Electron، لا يحتاج REA إلى هذه الأدوات، بل يحللها مباشرة .
- بروتوكول MCP: هو الجسر الذي يسمح للوكيل بإرسال الأوامر إلى أدوات التحليل واستلام النتائج (مثل الكود المفكك، الرسوم البيانية للاستدعاءات، والبيانات الوصفية) .
عندما تطلب من الوكيل تحليل برنامج، يبدأ الوكيل بسلسلة من الخطوات: يطلب من REA فتح الملف، ثم يبحث عن الدوال (Functions) ذات الصلة، ثم يطلب تفكيكها (Decompile)، ثم يحلل النتائج، وهكذا حتى يصل إلى إجابة مدعومة بالأدلة .
أمثلة حية من الواقع
أعلن فريق REA عن عدة حالات استخدام مثيرة للاهتمام:
1. لعبة Chrome الديناصور
أراد الفريق معرفة كيف تزداد سرعة الديناصور في اللعبة المخفية في متصفح Chrome. استخدم الوكيل REA لتحليل كود اللعبة، واكتشف معادلة التسارع، ثم تمكن من إنشاء نسخة معدلة يمكن فيها التحكم بسرعة الديناصور يدوياً .
2. لعبة DX-Ball (كلاسيكية)
أراد الفريق فهم كيفية حساب موضع الصوت (يمين/يسار) بناءً على مكان اصطدام الكرة بالطوب. كانت النتائج الأولية للتفكيك غير مكتملة، فاستمر الوكيل في تحليل التعليمات الأصلية والثوابت، حتى تمكن من إعادة بناء الدالة بلغة C. ثم تم اختبار الدالة الجديدة مقابل الدالة الأصلية باستخدام 3,205 حالة اختبار، وتطابقت جميعها، بل أنتجت الدالة الجديدة نفس 63 بايت من الكود الآلي الذي تنتجه الدالة الأصلية .
3. تطبيق Notion
كيف يعمل زر النسخ في Notion؟ تتبع الوكيل مسار البيانات من واجهة المستخدم، عبر جسر IPC، إلى العملية الرئيسية، ليكتشف كيف يتم تحويل النص المنسق إلى HTML وحفظه في الحافظة .
هل هذا قانوني؟
هذا هو السؤال الأكثر إثارة للجدل. الإجابة المختصرة: يعتمد على ما تفعله.
- الهندسة العكسية للفهم: في كثير من الدول، من القانوني تحليل برنامج لفهم كيفية عمله (لأغراض التوافق أو الأمان أو البحث).
- انتهاك اتفاقية الترخيص (EULA): معظم البرامج الاحتكارية تحظر صراحة في اتفاقية الترخيص فك التجميع أو التفكيك. القيام بذلك قد يعرضك للمساءلة القانونية التعاقدية، حتى لو كان الفعل نفسه قانونياً .
- نسخ الكود: إذا قمت بنسخ الكود الأصلي (أو أجزاء كبيرة منه) إلى مشروعك، فهذا انتهاك مباشر لحقوق الطبع والنشر.
- الاستخدام التجاري: استخدام REA لإنشاء منتج منافس بناءً على تحليل برنامج آخر يمكن أن يؤدي إلى دعاوى قضائية.
بعض الشركات، مثل StoryTold (المطورة لأدوات ArtCraft)، أعلنت صراحة أنها لن تستخدم REA في مشاريعها، لأن المخاطر القانونية كبيرة جداً .
المتطلبات والتثبيت
المتطلبات الأساسية:
- Node.js: الإصدار 22.19+ أو 24.11+ أو 26+.
- نظام التشغيل: macOS 12+، أو Linux (Ubuntu 24.04+، Fedora 41+، Arch Linux).
- وكيل برمجة: Claude Code، Cursor، Codex، Gemini CLI، أو أي وكيل يدعم MCP.
التثبيت السريع:
npx rea-agents setup
سيقوم هذا الأمر بفحص نظامك، وتثبيت REA، وربطه بوكيل البرمجة الذي تستخدمه، مع نسخ احتياطي لإعداداتك القديمة .
للتحليل الأصلي (Native):
إذا كنت تريد تحليل ملفات تنفيذية (EXE، ELF، Mach-O)، ستحتاج إلى تثبيت أحد محركات التحليل (Ghidra أو Hopper أو IDA) بشكل منفصل. REA لا يثبتها تلقائياً (باستثناء Hopper الذي يمكن تثبيته بموافقتك) .
الاستخدام العملي
بعد التثبيت، أعد تشغيل وكيلك، ثم اسأله مباشرة:
“استخدم REA لتحليل تطبيق Notes، واشرح لي كيف تعمل ميزة البحث، ثم ابنِ لي ميزة مشابهة في مشروعي.”
أو إذا كنت تفضل سطر الأوامر:
# تحليل تطبيق JavaScript/Electron مستخرج
npx -y rea-agents@latest analyze-javascript-application /path/to/app --json
خلاصة
REA هو سلاح ذو حدين. من ناحية، هو أداة تعليمية وبحثية مذهلة، تفتح أبواب فهم البرمجيات أمام الملايين، وتزيل الحواجز التقنية أمام المطورين لتعلم أفضل الممارسات من تطبيقات حقيقية. من ناحية أخرى، هو تهديد وجودي لنموذج البرمجيات الاحتكارية، وأداة قد تسهل القرصنة والنسخ غير القانوني.
ما لا شك فيه أن REA قد غيّر قواعد اللعبة. الشركات الكبرى ستحتاج إلى إعادة التفكير في استراتيجياتها، والمطورون سيحتاجون إلى إعادة تقييم حدود الأخلاقيات والقانون. أما نحن، كمستخدمين، فسنشهد تحولاً في كيفية فهمنا للبرمجيات التي نستخدمها يومياً.
روابط سريعة
https://github.com/morluto/rea
نشر في قسم الذكاء الاصطناعي – أدوات تطوير وأمن ```
التفاعلات والتعليقات
سجّل الدخول بحساب GitHub للتعليق أو التفاعل. مدعوم بـ Giscus (مخزَّن في GitHub Discussions)