تطوير مالوير بتقنية Hell's Gate وطريقة إكتشافه كمحلل مالوير
حجاب الشريف
بسم الله الرحمن الرحيم
الحمد لله رب العالمين والصلاة والسلام على أشرف المرسلين سيدنا محمد وعلى آله وصحبه ومن تبعهم بإحسان إلى يوم الدين.
السلام عليكم ورحمة الله وبركاته
اليوم راح أتكلم عن أكثر تقنية يستخدمونها مطورين المالوير لتعقيد محللين مالوير وكيف نكشفها كمحللين مالوير
تحذير هام
أبرئ ذمتي أمام الله في من يريد إستخدام هذا الشرح في مضرة الأخرين وأنا لست مسؤول عن من يستخدم الشرح في أذية الأخرين اللهم بلغت اللهم فأشهد
المتطلبات
فهم متقدم في تحليل المالوير
فهم متقدم في الأسمبلي
فهم متقدم في لغة C
فهم متقدم في تطوير المالوير
مبادئ مهمة
طبعا عشان نعرف تقنية 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
واللي شرحناها بالتفصيل فوق