Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
xfg_analyzer — مكوّن إضافي لـ Binary Ninja يستخدم تجزئات XFG المُخمَّنة بالقوة الغاشمة لاستعادة نماذج الدوال الأولية الدقيقة. | Kitploit
أدوات/GitHubGitHub/ea/xfg_analyzer
التحليل الثابتالهندسة العكسيةتحليل الملفات الثنائية
GitHubea/xfg_analyzer

xfg_analyzer

مكوّن إضافي لـ Binary Ninja يستخدم تجزئات XFG المُخمَّنة بالقوة الغاشمة لاستعادة نماذج الدوال الأولية الدقيقة.

عرض المستودع
162منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

استعادة توقيعات الدوال عن طريق تخمين تجزئات XFG

يحتوي هذا المستودع على سكربتات لتوليد تجزئات eXtended Flow Guard والبحث عنها.

تتوفر دراسة موسّعة حول كيفية عمل ذلك في العدد 22 من International Jouranl Of Proof Of Concept || GTFO.

تم تبسيط عملي في هذا الإثبات المفاهيمي (PoC) إلى حد كبير بفضل الأشخاص في Quarkslab الذين قاموا بهندسة عكسية موسّعة للأجزاء ذات الصلة من مترجم MS. يمكن قراءة شرحهم المفصّل حول كيفية حساب تجزئات XFG هنا: https://blog.quarkslab.com/how-the-msvc-compiler-generates-xfg-function-prototype-hashes.html

ملاحظة: هذا لا "يكسر" XFG كآلية تخفيف للاستغلال، بل يسيء استخدام آثاره الجانبية فقط لإظهار الدوال التي لا تملك رموزًا.

باختصار، تعمل XFG كما نُفِّذت على ويندوز على توسيع وتشديد آلية تخفيف الاستغلال Control Flow Guard من خلال تقييد الأهداف الممكنة لاستدعاءات الدوال غير المباشرة، ليس فقط بنقاط دخول صالحة للدوال، بل بالدوال ذات التوقيع المطابق. للقيام بذلك، يتم حساب تجزئة XFG لكل دالة ويتم التحقق منها أثناء وقت التشغيل. تعتمد التجزئات على توقيع الدالة فقط (أي اصطلاح الاستدعاء والوسائط وأنواعها). وبالتالي، يمكننا حسابها مسبقًا للأنواع المعروفة ثم البحث عنها لاحقًا للدوال في الملفات الثنائية غير المعروفة.

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

أدعوك لقراءة المقال الكامل في PoC||GTFO، المتاح من مرآة قريبة.

السكربتات هي:

  • gen_function_prototypes.py - يُخرج ببساطة ملفًا يحتوي على جميع التوقيعات الممكنة مع الأنواع المعطاة
  • gen_hash_from_ast.py - يقرأ ملف .c، ويحلله نحويًا ويحسب التجزئة ويحفظها في قاعدة بيانات (مخصص للاستخدام على الملفات المُولَّدة بواسطة gen_function_prototypes.py)
  • xfg_analyzer.py - إضافة Binary Ninja تبحث في الملف الثنائي عن تجزئات XFG وتبحث عنها في قاعدة البيانات
  • find_hash.py - اختصار بسيط للبحث عن تجزئات معينة في قاعدة البيانات

لاستخدام هذه السكربتات، ستحتاج أولاً إلى تعديل gen_function_prototypes.py لإضافة "الأنواع البدائية" والهياكل (structs) والتعدادات (enums) الخاصة بالهدف الذي تفحصه. أيضًا، ستحتاج إلى اختيار عدد الوسائط التي تريد تخمينها. ما يصل إلى 3 يستغرق دقيقة، وما يصل إلى 4 يستغرق يومًا...

بعد توليد توقيعات الدوال لجميع التركيبات، ستحتاج إلى تشغيل gen_hash_from_ast.py الذي سيحلل الملف المُولَّد سابقًا سطرًا سطرًا ويولّد تجزئة XFG المقابلة. عند اكتمال ذلك، سيكون لديك قاعدة بيانات SQLite لتوقيعات الدوال مع تجزئات XFG المطابقة لها. تم تضمين إضافة Binary Ninja بسيطة جدًا في xfg_analyzer.py. عند تشغيلها على ملف ثنائي محمي بـ XFG، ستجد جميع تجزئات XFG وتبحث عنها في قاعدة البيانات، وإذا تم العثور على تطابق، فستطبق توقيع الدالة الجديد على الدالة المعرَّفة.

اعلم أن هذا مجرد إثبات مفاهيمي (PoC). لكي يكون مفيدًا حقًا، يجب توليد قاعدة بيانات ضخمة من التجزئات (ربما تكون مملوءة بجميع أسماء الهياكل/التعدادات من ملفات رأس ويندوز) وإتاحتها للبحث عبر الإنترنت. بالإضافة إلى ذلك، توسيع هذه الفكرة لتشمل تجزئات XFG الخاصة بـ C++ سيكون مشروعًا ممتعًا للغاية.

لا تتردد في استخدام الكود الموجود في هذا المستودع بأي طريقة. إذا وجدته مفيدًا، أود أن أسمع منك.

  • ea
تنزيل الأداة