REA أم Ghidra: أي سير عمل للهندسة العكسية يناسبك؟
قارن بين REA وGhidra من حيث المهام والمدخلات والمخرجات والتحكم اليدوي ومتطلبات الإعداد وخيار استخدام Ghidra عبر REA.
ما الجديد في هذه الصفحة
- — نُشرت حالات مجتمعية موثّقة بالمصادر وأدلة عملية، مع توضيح حدود الأدلة.
استخدم Ghidra عندما تريد استكشاف مشروع تحليل لملف ثنائي أصلي وتعديله مباشرة؛ واستخدم REA عندما تريد من وكيل برمجة أو واجهة سطر أوامر التحقيق في البرمجيات وتقديم نتائج مع أدلة. يستطيع REA استخدام Ghidra مزوّدًا لتحليل الملفات الثنائية الأصلية، لذلك يمكن أن تكون الأداتان جزءًا من سير عمل واحد.
هذه مقارنة مجتمعية مستقلة. يُعدّ مستودع REA ومستودع Ghidra المصدرين الأساسيين للإمكانات والمتطلبات الحالية.
ما الفرق بين REA وGhidra؟
Ghidra إطار عمل للهندسة العكسية للبرمجيات، يوفّر تفكيك التعليمات وفك الترجمة والرسوم البيانية وكتابة البرامج النصية والتحليل التفاعلي أو الآلي. تمنح بيئة التحليل الخاصة بـ Ghidra المحلّل تحكمًا مباشرًا في التحقيق. يصف ملف README الرسمي لـ Ghidra دعم المعالجات وصيغ الملفات التنفيذية والإضافات.
REA خادم MCP وواجهة CLI يغطيان عدة فئات من الأهداف، منها الملفات الثنائية الأصلية وتطبيقات JavaScript/Electron وصفحات المتصفح والتجميعات المُدارة. يستدعي وكيل البرمجة أدوات REA ويتلقى النتائج والقيود، ثم يقرر ما سيفحصه لاحقًا. وللتحليل المتعمق للملفات الثنائية الأصلية، يتصل REA بتثبيت مدعوم من Ghidra أو Hopper أو IDA. يشرح دليل REA للملفات الثنائية الأصلية هذه العلاقة مع مزوّد التحليل.
| ما الذي تحتاج إليه؟ | نقطة البداية الأنسب | المدخلات | المخرجات أو الميزة |
|---|---|---|---|
| تتبّع دوال الملفات الثنائية ورسومها البيانية يدويًا | Ghidra مباشرة | ملف ثنائي مدعوم | بيئة تحليل تفاعلية كاملة وتحكم مباشر في المشروع |
| سؤال وكيل عن سبب تصرّف ميزة في برنامج أصلي على نحو معيّن | REA مع مزوّد مدعوم لتحليل الملفات الثنائية الأصلية | ملف ثنائي وسؤال محدد | نتائج وأدلة وشرح بتوجيه من الوكيل |
| الاحتفاظ بمشروع تحليل وتطويره بمرور الوقت | Ghidra مباشرة | برنامج مستورد وتغييرات المحلّل | سير عمل لمشروع دائم تحت تحكمك |
| فحص وحدة Electron أو مسار IPC | سير عمل JavaScript في REA | مجلد التطبيق أو أرشيف ASAR | وحدات وعلاقات ومواضع في المصدر دون محرك لتحليل الملفات الثنائية الأصلية |
| كتابة برامج نصية لتحليل ملفات ثنائية أصلية بصورة قابلة للتكرار | أي منهما، بحسب التحكم المطلوب | ملف ثنائي وبرنامج نصي للتحليل أو طلب CLI | برامج Ghidra النصية أو نتائج CLI المنظّمة من REA |
متى يكون Ghidra الخيار الأقوى؟
اختر Ghidra مباشرة عندما يعتمد العمل على الاستكشاف البصري المستمر، أو تغييرات تفصيلية يجريها المحلّل، أو برامج نصية مخصصة، أو قاعدة بيانات دائمة للبرنامج. تتيح الواجهة الأصلية لـ Ghidra الوصول إلى مشروع التحليل نفسه. ويمكن لمحلّل متمرّس فحص التعليمات والرسوم البيانية دون تحويل كل إجراء إلى طلب للوكيل.
لا يتيح استخدام REA مع Ghidra الوصول إلى كل ميزات Ghidra عبر MCP. تصف وثائق مزوّد التحليل في REA العمليات المتحقق منها وقيود النظام المضيف. يستخدم سير العمل الموثّق في REA، الذي يعمل دون واجهة رسومية، مشروعًا مؤقتًا؛ ولا يفتح مشروع المستخدم الموجود لديك. فضّل واجهة Ghidra المباشرة عندما يكون الحفاظ على ذلك المشروع القائم متطلبًا.
يوفر Ghidra أيضًا أساليب عمل آلية وبرمجية خاصة به. والقول إن Ghidra يدوي فقط سيكون غير صحيح. ما يميّز REA بصورة مفيدة هو واجهته المشتركة للوكلاء ولسطر الأوامر عبر أنواع الأهداف، وليس الانفراد بإتاحة الأتمتة.
متى يكون REA نقطة البداية الأقوى؟
يفيد REA في سؤال محدد ينتقل من الفحص إلى التنفيذ. مثلًا، يستطيع وكيل التحقيق في عملية حسابية، وتحديد التعليمات والمراجع ذات الصلة، وشرح قاعدة، ثم كتابة تنفيذ صغير لتختبره. وتظل خلاصة الوكيل بحاجة إلى فحوص تقارنها بالسلوك الأصلي.
تتتبّع دراسة حالة DX-Ball الرسمية استدعاءً صوتيًا وصولًا إلى دالة مساعدة تحوّل الموضع إلى توزيع للصوت بين القناتين، وتعيد بناء تلك العملية الحسابية بلغة C. يفيد المشروع بإجراء 3,205 حالات اختبار على x86 الأصلي وتطابق بايتات الدالة المترجمة البالغ عددها 63 جميعًا. تخص هذه النتائج ذلك المثال التطبيقي بعينه؛ ولا تثبت معدل نجاح عامًّا لـ REA أو تفوقًا في الأداء على Ghidra.
يوفر REA أيضًا أساليب عمل تتجاوز فك ترجمة الملفات الثنائية الأصلية. ففي تطبيق Electron، يستطيع التحليل الساكن لـ JavaScript تحديد الوحدات وعلاقات IPC دون بدء Ghidra. وهذا يجعل REA مدخلًا ملائمًا عندما يمتد تحقيقك عبر حزم التطبيقات وJavaScript ومكونات أصلية محددة. يسرد جدول الأهداف في REA المتطلبات المسبقة المنفصلة.
كيف تستخدم Ghidra عبر REA؟
ثبّت إصدارًا من Ghidra وJDK تدعمهما وثائق مزوّد التحليل في REA، ثم اضبط REA لاستخدام ذلك التثبيت. تستطيع عملية إعداد REA تسجيل المسارات الموجودة بعد التحقق منها؛ لكنها لا تنزّل Ghidra أو Java ولا تثبّتهما نيابة عنك. يتضمن دليل الإعداد الرسمي تعليمات الضبط الحالية.
لا تفترض أن أحدث إصدار من Ghidra متوافق تلقائيًا مع حزمة REA المثبّتة لديك. فمتطلبات الإصدار الحالي من Ghidra ونطاق مزوّد التحليل الذي اختُبر مع REA يخدمان غرضين مختلفين. في تاريخ هذه المقالة، يصف دليل التثبيت في فرع main لدى REA فحصًا لمزوّد Ghidra 12.1.x؛ فراجع ذلك الدليل وإمكانات الخادم المثبّت قبل اختيار الإصدارات.
بعد ضبط مزوّد التحليل، يمكنك إجراء تشخيص محدد النطاق:
npx -y rea-agents@latest doctor --provider ghidra --json
قد تحتاج العمليات التي تعتمد على Ghidra إلى وقت للاستيراد والتحليل التلقائي عند الاستعلام الأول. وقد تتطلب الملفات الثنائية الكبيرة مهلة أطول لبدء مزوّد التحليل، بينما قد تكون لعميل MCP مهلة طلب خاصة به أقصر. استخدم الإرشادات الموثّقة للمهل الزمنية والتعافي عند تشخيص هذه الحالة.
ما القيود التي ينبغي أن تؤثر في قرارك؟
يختلف دعم مزوّدي التحليل في REA بحسب النظام المضيف والهدف. وقد وُصف نطاق Ghidra P0 على Windows فيه صراحة بأنه تجريبي وأضيق من الدعم العام للمنصات والصيغ في Ghidra. اقرأ دليل مزوّد التحليل على Windows بدلًا من استنتاج التوافق من قدرة Ghidra على استيراد ملف يدويًا.
قد يصف فرع main في REA أيضًا ميزات أحدث من حزمة npm التي يثبّتها @latest. وعمل إصدار من الحزمة وحده لا يثبت توافر كل عمليات فرع main. راجع الفاصل بين الإصدارات ومخططات الأدوات المتصلة.
يتطلب كلا أسلوبي العمل تقديرًا سليمًا. فالشيفرة شبه البرمجية الناتجة عن فك الترجمة ليست المصدر الأصلي، وقد يظل السلوك غير المباشر غير محسوم، كما قد يسيء وكيل البرمجة تفسير أدلة صحيحة. أكّد الاستنتاجات المهمة بالتعليمات والمراجع ذات الصلة وبفحص سلوكي مضبوط.
ما الأسئلة الشائعة عن REA وGhidra؟
هل يحل REA محل Ghidra؟
يمكن لـ REA استخدام Ghidra محركًا، ولا يحل محل بيئته التفاعلية الكاملة. اختر الواجهة التي تناسب المهمة، أو اجمع بينهما.
هل أيٌّ من الأداتين مجاني؟
الشيفرة التي ألّفها مشروع REA متاحة بترخيص MIT. وGhidra مشروع مفتوح المصدر له ترخيصه المنشور وإشعاراته الخاصة بالجهات الخارجية. وللوصول إلى نماذج وكلاء البرمجة ولمزوّدي التحليل التجاريين الاختياريين، مثل Hopper أو IDA، شروط منفصلة. راجع ترخيص REA وترخيص Ghidra.
هل يمكنني فحص JavaScript دون Ghidra؟
نعم. يستخدم سير العمل الساكن لـ JavaScript/Electron في REA كلًا من Node.js وnpm، وليس أداة لفك ترجمة الملفات الثنائية الأصلية. وتُعدّ الإضافة الأصلية في ذلك التطبيق هدف تحليل منفصلًا له متطلباته الخاصة.
أي أداة ينبغي أن يجرّبها المبتدئ أولًا؟
لتعلّم لغة التجميع والتحليل اليدوي للملفات الثنائية، ابدأ بمواد Ghidra نفسها. ولتعلّم التحقيق بقيادة وكيل انطلاقًا من سؤال، ابدأ بـ مثال Notes من REA أو دليل إعداد REA لدينا. يجعل اختيار هدف أصغر وسؤال يمكن التحقق منه تقييم أي من المسارين أسهل.