تخطي إلى المحتوى

حالة استخدام

يعد تحليل التعليمات البرمجية بحالتها الثابتة عملية تفكيك ملف ثنائي من أجل فهم ما بداخله وهي تتطلب الكثير من العمل وتتطلب معرفة بهندسة البرمجيات. لهذا السبب يُفضل معظم المحللين إجراء تحليل ديناميكي (والذي نركز عليه في الموضوع الفرعي 3) بدلاً من ذلك. هناك العديد من الأسباب التي قد تدفعك إلى إجراء تحليل التعليمات البرمجية بحالتها الثابتة، بما في ذلك عدم جدوى التحليل الديناميكي أو إذا كنت لا تريد أن يعرف المتطفل المحتمل أنك تملك الملف وتحلله.

يتناول هذا الموضوع الفرعي مهارة متقدمة للغاية وتتطلب المؤلفات التوجيهية التي تحتاج روابطها الكثير من الوقت حتى إتمامها. وإذا لم يكن لديك الوقت حاليًا للتركيز عليها وتريد بدلاً من ذلك معرفة ما يجب فعله بنتائج التحليل الديناميكي، انتقل إلى الموضوع الفرعي 5.

الأهداف

بعد استكمال هذا الموضوع الفرعي، يتوقع من الممارسين أن يكونوا قادرين على:

  • فهم الحالات التي قد يكون فيها تحليل التعليمات البرمجية بحالتها الثابتة أكثر ملاءمة من التحليل الديناميكي
  • التمكن من إجراء تحليل أساسي للتعليمات البرمجية بحالتها الثابتة في ويندوز أو أندرويد باستخدام أدوات جاهزة

العرض

يعد تحليل التعليمات البرمجية بحالتها الثابتة عملية لتحديد المعلومات حول برمجية ضارة دون تشغيلها ومن الناحية الفنية فإن تحليل الملف الأساسي الذي أجريته أعلاه هو شكل من أشكال التحليل بالحالة الثابتة. لكن نشير عمومًا إلى تحليل الحالة الثابتة للبرمجيات الضارة على أنه التعرف على الإجراءات التي ستنفذها البرمجيات الضارة. يتضمن هذا عمومًا أخذ برنامج ثنائي تم تحويله برمجيًا ثم إلغاء تحويله البرمجي وقراءة التعليمات البرمجية الناتجة. البديل هو التحليل الديناميكي عند تشغيل البرمجيات الضارة ثم مراقبة سلوكها.

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

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

في حين أن الكثير من تركيز مسار التعلّم هذا ينصب على التحليل الثابت للبرامج الثنائية المحولة برمجيًا، يجب مراعاة وجود أنواع من البرمجيات الضارة من الأسهل تحليلها متل تلك المكتوبة بلغات HTML/JavaScript، ولغات برمجة شيل (shell)، وما إلى ذلك.

نظام ويندوز

للبدء في التحليل الثابت لنظام ويندوز، سنترك ريمنوكس وننتقل إلى مجموعة من البرامج التعليمية حول الهندسة العكسية البرمجيات الضارة لنظام ويندوز، علمًا أن هذا الدليل التعليمي يتضمن القليل من التحليل الديناميكي ولكنه يركز بشكل كبير على التحليل الثابت. من أجل الاتساق عليك استكمال التمارين الموضحة أدناه. تذكر أنه إذا وجدت أي أدوات تحبها وليست جزءًا من ريمنوكس فيمكنك إضافتها إلى الجهاز الظاهري الذي يعمل عليه نظام ريمنوكس. (يمكنك أيضًا البدء من جديد في أي وقت باستخدام جهاز ظاهري فارغ إذا كنت ترغب بذلك.)

نظام ويندوز: موارد التعلّم

الهندسة العكسية 101 و102 للبرمجيات الضارة على ويندوز

مجاني

دورة ممتازة وشاملة حول الهندسة العكسية للبرمجيات الضارة في ويندوز. لاحظ أن هذه التمارين هي مقدمة ليست بسهلة وقد تضطر إلى إجراء دراسة إضافية (الموارد أدناه) من أجل فهم تمارين معينة وقد يستغرق إكمالها عدة أيام.

اللغات: اللغة الإنجليزية
زيارة الموقع

دورات OpenSecurityTraining2

مجانًا، مدفوع مع دعم المدرس

دورات تُوفر دراسة متعمّقة جدًا لهندسة النظام منخفضة المستوى وعكسها.

اللغات: اللغة الإنجليزية
زيارة الموقع

مسار تعلّم OpenSecurity لتحليل البرمجيات الضارة

مجاني
اللغات: اللغة الإنجليزية
زيارة الموقع

الهندسة العكسية لنظام ويندوز باستخدام x64dbg

مجاني

تُركز سلسلة الفيديو هذه بشكل خاص على استخدام x64dbg وهي أداة تصحيح أخطاء مفتوحة المصدر لعكس هندسة البرمجيات الضارة في ويندوز

اللغات: اللغة الإسبانية
زيارة الموقع

نظام أندرويد

بينما تُكتب برامج ويندوز عادةً باستخدام أداة تجميع x86 أو x64، تستهدف الملفات الثنائيات على أندرويد عادةً جهازًا افتراضيًا يسمى وقت تنفيذ أندرويد (ART)، وهو مشابه لجهاز جافا الظاهري. يمكن عادةً عكس الرمز المكون من وحدات البايت لوقت تنفيذ أندرويد تلقائيًا إلى لغة جافا على النقيض من الرمز المكون من وحدات البايت لهندسة x86/x64 الذي يمكن عكسه عادةً باستخدام الآلة فقط حتى مرحلة التجميع. قبل أن تتحمس أكثر، اعلم بوجود العديد من أدوات الطمس التي يمكنها بسهولة جعل التعليمات البرمجية المكتوبة بلغة جافا والتي تُطبق عليها الهندسة العكسية غير قابلة للقراءة تقريبًا، كما أن نظام أندرويد يدعم التعليمات البرمجية الأصلية من خلال مكتبة NDK library. لاحظ أن معظم أجهزة أندرويد تحتوي على هندسات تستند إلى ARM وليس x86/x64، لذلك ستحتاج إلى تعلم تجميع ARM لإجراء هندسة عكسية على معظم التعليمات البرمجية الأصلية لنظام أندرويد التي من المحتمل أن تجدها.

قد تواجه أيضًا لغة برمجة كولتين عند تعلّمك عن نظام أندرويد حيث تتحول برمجيًا كل من كولتين وجافا إلى نفس الرمز المكون من وحدات البايت وهما متشابهتان جدًا على المستوى المنخفض. عند إجراء تحليل ثابت على تطبيق أندرويد يجب ألا تكون لغة البرمجة الأصلية مهمة ونوصي بالتركيز على جافا لأن أدوات إلغاء التحويل البرمجي المتاحة تُحول وقت تنفيذ أندرويد إلى جافا، وليس كولتين.

كما هو الحال مع قسم التحليل الثابت لنظام ويندوز، يرتكز هذا القسم حول التحليل الثابت لنظام أندرويد على مسار ممتاز وشامل ولكن ليس سهلًا. ستحتاج على الأرجح إلى دراسة المزيد من أجل فهم المادة في المقرر الأساسي.

نظام أندرويد: موارد التعلّم

الهندسة العكسية 101 لتطبيقات أندرويد

مجاني

دورة ممتازة وشاملة حول الهندسة العكسية لتطبيقات أندرويد. لاحظ أن هذه التمارين هي مقدمة ليست بسهلة لذا قد تضطر إلى إجراء دراسة إضافية (الموارد أدناه) من أجل فهم تمارين معينة وقد يستغرق إكمالها عدة أيام. قد تساعدك الموارد أدناه على استيعاب أقسام الدورة التدريبية.

اللغات: اللغة الإنجليزية
زيارة الموقع

كيفية التحليل الثابت لتطبيق أندرويد مشبوه

مجاني

مقدمة متوسطة المستوى ممتازة للتحليل الثابت لتطبيقات أندرويد.

اللغات: اللغة الإنجليزية
زيارة الموقع

دورة تعلم جافا من Codecademy

مجاني

مقدمة أساسية حول لغة جافا. حيث تحتاج إلى فهمها من أجل العمل مع برامج أندرويد.

اللغات: اللغة الإنجليزية
زيارة الموقع

أنشئ أول تطبيق أندرويد في جافا.

مجاني

دورة أساسية حول بناء التطبيقات من Google. يجب أن تمنحك فكرة عن طريقة عمل تطبيقات أندرويد وتُحضرك للتعرف على التفاصيل الداخلية لتطبيقات أندرويد.

اللغات: اللغة الإنجليزية
زيارة الموقع
## اختبار مهارة

اجلس مع أحد النظراء أو مُرشِد لديه خبرة كبيرة في الفحص غير النشط ضد الخوادم على الإنترنت وبعدها:

  • أكمل تمارين بيزيك مالوير آر إي Basic Malware RE (المجانية) على تراي هاك مي (TryHackMe)
  • (أندرويد فقط) أكمل التمارين في الهندسة العكسية 101 لتطبيقات أندرويد Android App Reverse Engineering 101
  • (ويندوز فقط) في هذه المرحلة، يجب أن تكون على دراية إلى حد ما بتفكيك ملفات الثنائيات لنظام ويندوز وقراءة تجميع x86 واستخدام هذه المعرفة لفهم ما يفعله البرنامج. ارجع إلى الجهاز الظاهري الذي يعمل عليه نظام ريمنوكس وقم بتحليل البرمجيات الضارة التي قمت بتنزيلها مسبقًا. لا تتردد في العودة إلى المواد التدريبية المذكورة أعلاه وإجراء بحث تكميلي أثناء قيامك بذلك