
أداة للفريق الأحمر للتهرب من حلول EDR: تحل معرّفات استدعاءات النظام (syscall IDs) ديناميكيًا، وتُصحح أكواد ntdll البديلة (stubs)، وتزيل خطافات IAT، وتسرد واجهات برمجة التطبيقات (APIs) المُخطَّفة لدى كبار موردي EDR.
يحتوي هذا المستودع على معلومات حول أنظمة EDRs قد تكون مفيدة أثناء تمارين الفريق الأحمر (red team).
يقوم إثبات المفهوم هذا بحلّ معرّف استدعاء النظام (syscall ID) ديناميكيًا دون الحاجة إلى التحقق من الإصدار الذي يعمل على المضيف البعيد. للحصول على المعلومات من القرص (غير المعبث بها) يتم استدعاء واجهتي Windows APIs وهما CreateFileMapping و MapViewOfFile. بعد ذلك يتم تحليل الـ DLL لاسترجاع البيانات واستخدامها لترقيع الكود الحيّ.
يقوم إثبات المفهوم هذا بترقيع معرّف استدعاء النظام المحدد في الكود. ثم يتم ترقيع النسخة الحيّة من الـ DLL باستخدام معرّف استدعاء النظام المكتوب بشكل ثابت (hardcoded) وإعادته إلى الحالة الأصلية غير المرقّعة.
تُستخدم هذه الأداة لاسترجاع معرّف استدعاء النظام المرتبط بواجهة Windows API.
get_syscall64.exe ntdll.dll NtOpenProcess
ntdll.dll!NtOpenProcess at 0x00007FF873F6CAD0
NtOpenProcess syscall ID 0x00000026 (38)
يكتشف إثبات المفهوم هذا الخطافات التي تضعها EDR/AV/البرمجيات الخبيثة في جدول عناوين الاستيراد (Import Address Table) ويستبدلها بالعناوين الأصلية (من برمجة xalicex).
EDRs.xlsx بتنسيق من Vincent Yiu
هل تريد المساهمة؟ فقط قم بتشغيل hook_finder64.exe C:\windows\system32\ntdll.dll وأرسل المخرجات.
انتقل الإصدار الأحدث بعيدًا عن UMH ويعتمد بدلاً من ذلك على استدعاء النواة (kernel callback) كما هو موضح أدناه:

قائمة خطافات CheckPoint SandBlast
⚠️ يتم ضبط هذه الخطافات في وضع النواة. لا يمكن إزالتها من وضع المستخدم.
Mr.Un1k0d3r فريق RingZer0
وكامل المجتمع <3