0Pricing
Cyber Security Academy · درس

Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية

استورد ملفًا ثنائيًا، وتجوّل في تعليمات التفكيك والتعليمات البرمجية المفككة، وأعد تسمية المتغيرات، وأضف التعليقات.

Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ما هو Ghidra؟

Ghidra هي أداة مجانية ومفتوحة المصدر للهندسة العكسية، طورتها NSA وأُتيحت للعامة في عام 2019. وهي تدعم التفكيك، وإزالة التجميع، والبرمجة النصية، والتحليل التعاوني على Linux وmacOS وWindows.

تحميل ملف ثنائي

فتح ملف ثنائي في Ghidra:

  1. أنشئ مشروعًا جديدًا
  2. استورد الملف (File → Import File)
  3. يُجرى التحليل التلقائي — اتركه حتى يكتمل (يتعرّف على الدوال والسلاسل النصية وأنواع البيانات)
  4. تُفتح CodeBrowser لعرض التفكيك البرمجي وواجهات مزيل الترجمة

واجهة Ghidra

النوافذ الأساسية في Ghidra:

  • شجرة البرامج — الأقسام (.text و .data و .plt)
  • شجرة الرموز — الدوال والتسميات وعمليات الاستيراد والتصدير
  • قائمة التعليمات — عرض التفكيك البرمجي
  • مزيل الترجمة — إعادة بناء بصيغة pseudo-C
  • الدوال — قائمة بجميع الدوال التي جرى التعرّف عليها

الانتقال إلى نقطة الدخول

ابدأ التحليل عند نقطة دخول البرنامج أو عند main():

  • اضغط G للانتقال إلى عنوان أو رمز
  • ابحث عن "main" في شجرة الرموز
  • انقر نقرًا مزدوجًا على أي دالة للانتقال إليها

قراءة مخرجات مزيل الترجمة

ينتج مزيل الترجمة في Ghidra شيفرة pseudo-C أسهل قراءة من لغة التجميع. لن تكون النتيجة مثالية — فأسماء المتغيرات عامة (param_1, local_10)، وقد يبدو تدفق التحكم غريبًا — لكنها تكشف المنطق بوضوح كافٍ لفهم ما تفعله الشيفرة.

إعادة تسمية المتغيرات والدوال

تُحسّن التعليقات التوضيحية قابلية القراءة:

  • انقر بزر الفأرة الأيمن على متغير ← Rename (أو اضغط L)
  • انقر بزر الفأرة الأيمن على دالة ← Rename Function
  • أضف تعليقات باستخدام ; (نهاية السطر) أو بأسلوب /*...*/

تساعد إعادة التسمية على بناء السياق كلما فهمت المزيد من الملف الثنائي.

التعرّف على السلاسل النصية

تُعد السلاسل النصية بالغة الأهمية لفهم الغرض من البرنامج:

  • يعرض Window → Defined Strings جميع ثوابت السلاسل النصية
  • انقر على سلسلة نصية للانتقال إلى موضع استخدامها في الشيفرة
  • تكشف رسائل الخطأ ومسارات الملفات وعناوين URL ومفاتيح السجل عن الوظائف التي ينفذها البرنامج

المراجع المتقاطعة (XREFs)

توضح XREFs المواضع التي تُستدعى فيها دالة أو يُستخدم فيها متغير. اضغط X على أي رمز لعرض جميع مراجعه. وهذا أمر بالغ الأهمية لمعرفة الموضع الذي تدخل فيه مدخلات المستخدم إلى دالة أو تُجرى فيه فحوصات الأمان.

البرمجة النصية باستخدام Ghidra

يوفر Ghidra واجهة برمجة نصية باستخدام Python/Java:

# Python script to find all calls to strcpy:
from ghidra.program.model.symbol import RefType
for ref in currentProgram.getReferenceManager().getReferencesTo(toAddr(0x401234)):
    print(ref.getFromAddress())

تحليل البرمجيات الخبيثة باستخدام Ghidra

لتحليل البرمجيات الخبيثة:

  • تعرّف على حيل منع التحليل (منع التصحيح البرمجي وتمويه الشيفرة)
  • اعثر على دوال الاتصال بالشبكة (socket و connect و WinInet)
  • حدّد دوال التشفير (ابحث عن ثوابت S-box الخاصة بـ AES: 0x63, 0x7c...)
  • استخرج عناوين C2 URL من السلاسل النصية بعد فك تشفيرها

Ghidra مقابل IDA Pro

Ghidra مقابل IDA Pro:

  • Ghidra: مجاني ومفتوح المصدر وقابل للبرمجة النصية، ويوفر مزيل ترجمة جيدًا
  • IDA Pro: المعيار المعتمد في المجال، وتحليله أسرع، ومنظومة إضافاته أفضل، لكنه مكلف ($$$)
  • بالنسبة إلى معظم المهام، يمتلك Ghidra قدرات كافية تمامًا؛ أما IDA فيناسب مختبرات تحليل البرمجيات الخبيثة الاحترافية

تحقق سريع: Ghidra

ما ميزة Ghidra التي تعرض جميع المواضع في الملف الثنائي التي تستدعي دالة أو تشير إلى دالة أو متغير محدد؟

مراجعة الدرس

Ghidra أداة مجانية للهندسة العكسية طورتها NSA، وتوفر التفكيك البرمجي ومزيل الترجمة والبرمجة النصية. تشمل إجراءات العمل الأساسية: تحميل الملف الثنائي، وتشغيل التحليل التلقائي، والانتقال إلى main()، واستخدام مزيل الترجمة لفهم المنطق، وإعادة تسمية المتغيرات، واستخدام XREFs لتتبع تدفق البيانات، والبحث في السلاسل النصية للحصول على السياق. تساعد التعليقات التوضيحية على بناء الفهم تدريجيًا. وتؤتمت البرمجة النصية مهام التحليل المتكررة.

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

هل درس «Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية» مجاني؟

نعم — نص درس «Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ماذا ستتعلم في «Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية»؟

استورد ملفًا ثنائيًا، وتجوّل في تعليمات التفكيك والتعليمات البرمجية المفككة، وأعد تسمية المتغيرات، وأضف التعليقات. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟

لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟

نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية
  2. أساسيات تجميع x86/x64 لمحللي البرمجيات العكسية
  3. التحليل الديناميكي باستخدام GDB وpwndbg
  4. إزالة التعمية وحيل مكافحة التحليل
← العودة إلى Cyber Security Academy