تطوير مالوير بتقنية Hell's Gate وطريقة إكتشافه كمحلل مالوير 

حجاب الشريف

بسم الله الرحمن الرحيم
الحمد لله رب العالمين والصلاة والسلام على أشرف المرسلين سيدنا محمد وعلى آله وصحبه ومن تبعهم بإحسان إلى يوم الدين.

السلام عليكم ورحمة الله وبركاته 

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

DonePending

تحذير هام

أبرئ ذمتي أمام الله في من يريد إستخدام هذا الشرح في مضرة الأخرين وأنا لست مسؤول عن من يستخدم الشرح في أذية الأخرين اللهم بلغت اللهم فأشهد

المتطلبات

  1. فهم متقدم في تحليل المالوير 

  2. فهم متقدم في الأسمبلي 

  3. فهم متقدم في لغة C 

  4. فهم متقدم في تطوير المالوير



مبادئ مهمة

طبعا عشان نعرف تقنية Hell's Gate لابد نفهم مبادئ أساسية نعرفها قبل معرفة هذي التقنية.

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

طبعا الأن نحاول ندخل حبة حبة للعمليات اللي تصير داخل النظام ونفهمها بشكل أكثر طبعا نلاحظ مثال ان البرنامج استدعى WriteFile لكي يكتب في ملف بإسم (Matrix.txt) في هذي الناحية راح يستدعيه من داخل مكتبة Kernel32.dll ومن ثم يتم تحويله لكي يفهمه الكيرنال إلى NtWriteFile  في داخل المكتبة الأساسية Ntdll.dll  ومن ثم يتم تشغيل تطبيق NtosKrnl.exe  ويتم استعمال syscall  والتعامل معاه من قبل الكيرنال وفهمها من قبل الهاردوير من خلال (Hardware Abstraction Layer)hall.dll وترجمته للعمليات المطلوبة للمستخدم

العمليات الأساسية في داخل التطبيقات

بعض windows api  لاتدخل في ntdll مباشرة تمر بمراحل معينة مثال من kernel32.dll إلى kernelbase.dll  وفي النهاية إلى ntdll  على حسب المكتبة المعينة ولكن في النهاية مصيرها تمشي على العمليات اللي ذكرناها فوق 

الأن نتعمق بالمسألة أكثر فأكثر ونحاول نفهم شيء أساسي وهو وش الأشياء اللي يحتويها  ntdll.dll.  

يكون بداخله مايعرف ب system call وهي أرقام يفهمها الكيرنال وتترجم بالشكل المطلوب من المستخدم وتكون هذي الأرقام أساسية لكل API في IAT(Import Adress Table) ويكون المرجع الأساسي لهم في ntdll ويتم إستدعاء system call  في داخل NtosKrnl.exe  في وضع الكيرنال مود ويتم التعرف عليه من قبل hall.dll والتعامل معاه من قبل الهاردوير

  لنختصرها أكثر  معنى system call  هو وسيط أساسي بين المستخدم والكيرنال لأي شيء يحتاجه المستخدم يكون يستعمل syscall لكي ينفذ شيء أساسي كإنشاء ملف او غيره 

صورة ملخصة لمثال واقعي للعمليات التي يقوم بها  نظام الويندوز في حال إستعمال

Windows API

واللي شرحناها بالتفصيل فوق   

Join