إذا كانت الأدوات السابقة مثل objdump تمنحك كود التجميع (Assembly)، فإن Ghidra هي أداة هندسة عكسية متكاملة (Software Reverse Engineering Framework) تم تطويرها من قبل وكالة الأمن القومي الأمريكية (NSA - National Security Agency) وتم إطلاقها مجاناً ومفتوحة المصدر للعالم في عام 2019.
الميزة الأقوى التي تجعل Ghidra أداة لا غنى عنها لأي خبير حماية أو صائد ثغرات هي الـ Decompiler (مفكك الأكواد البرمجية العالية).
بينما تقوم الأدوات الأخرى بتحويل الـ Binary إلى لغة التجميع (Assembly) التي تتطلب وقتاً كبيراً لقراءتها وفهمها، تمتلك Ghidra محركاً ذكياً جداً يقوم بتحليل لغة التجميع وإعادة صياغتها على شكل كود شبيه بلغة C (يسمى Pseudo-code). هذا يعني أنه يمكنك قراءة منطق البرنامج، الشروط (if/else)، والحلقات التكرارية (loops) وكأنك تقرأ الكود المصدري الأصلي للبرنامج تقريباً!
عندما تقوم بفتح ملف تنفيذي داخل Ghidra وتوافق على إجراء التحليل التلقائي (Auto-Analysis)، ستجد نفسك أمام واجهة رسومية (GUI) مقسمة إلى نوافذ احترافية تعمل معاً بشكل متزامن:
Symbol Tree (شجرة الرموز):
توجد غالباً على اليسار، ومن خلالها يمكنك الوصول سريعاً إلى جميع الدوال (Functions) الموجودة في البرنامج. تبحث فيها عن دالة main أو دائل أخرى تثير الشكوك مثل validate_password أو login.
Listing View (نافذة التجميع):
تعرض لك كود الـ Assembly الخاص بالملف بالتفصيل، مع توضيح العناوين والـ Opcodes (تماماً مثل مخرجات objdump ولكن بشكل ملون وتفاعلي يمكنك الضغط عليه).
Decompiler View (نافذة فك الكود):
هذه هي النافذة السحرية، وتكون بجانب نافذة الـ Assembly. عندما تضغط على أي سطر كود Assembly في نافذة الـ Listing، تقوم نافذة الـ Decompiler تلقائياً بعرض الكود المقابل له بلغة C، والعكس صحيح.
Graph View (الرسم البياني للتدفق):
تحول لك الدالة إلى مخطط تدفقي (Control Flow Graph - CFG)، حيث تظهر الشروط والقفزات البرمجية (jmp, jne) على شكل مسارات وأسهم ملونة (سهم أخضر إذا تحقق الشرط، وسهم أحمر إذا لم يتحقق). هذا يساعدك على فهم بنية تشعب البرنامج بصرياً.