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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ida-efiutils — بعض السكربتات الخاصة بـ IDA Pro للمساعدة في الهندسة العكسية لملفات EFI الثنائية | Kitploit
أدوات/GitHubGitHub/snare/ida-efiutils
أمان الأنظمة المدمجةالهندسة العكسيةأمان الأجهزة وإنترنت الأشياءتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubsnare/ida-efiutils

ida-efiutils

بعض السكربتات الخاصة بـ IDA Pro للمساعدة في الهندسة العكسية لملفات EFI الثنائية

عرض المستودع
30966منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

نصوص IDA البرمجية لـ EFI

بعض نصوص IDA البرمجية للمساعدة في الهندسة العكسية لملفات EFI القابلة للتنفيذ.

تحتوي هذه الحزمة على الملفات التالية:

  1. efiutils.py - وحدة IDAPython تحتوي على بعض الدوال المساعدة

  2. efiguids.py - مجموعة من المعرفات الفريدة المعروفة (GUIDs) لبروتوكولات EFI

  3. efiguids_ami.py - مجموعة من المعرفات الفريدة المعروفة (GUIDs) للبروتوكولات المستخدمة في BIOS من نوع AMI

  4. behemoth.h - ملف رأس ضخم يحتوي على مجموعة من تعريفات الأنواع والهياكل لـ EFI

  5. structs.idc - نص IDC يحتوي على بعض تعريفات الهياكل (تم استبداله بـ behemoth.h)

  6. te_image.bt - قالب محرر 010 لصور TE الثنائية

  7. te_loader.py - نص محمّل IDA Pro لصور TE الثنائية

هذه أول محاولة لي في كتابة نصوص IDA، لذا أرجو المعذرة وأخبروني إذا كنت قد أعدت اختراع العجلة/فعلت أي شيء غير منطقي.

الدوال

الدوال الرئيسية المفيدة موصوفة أدناه. راجع الكود وسلاسل التوثيق (docstrings) لمزيد من المعلومات حول الدوال الأخرى.

rename_tables()

تبحث عن نقطة الدخول الأولى للملف الثنائي، وتحاول تتبع المعاملات التي تم تمريرها إلى دالة نقطة الدخول وإعادة تسمية المتغيرات العامة التي يتم تخزين جداول EFI الرئيسية فيها. يتم تنفيذ عمليات إعادة التسمية التالية:

  1. المتغير العام الذي ينتهي فيه ImageHandle يُعاد تسميته إلى gImageHandle.

  2. المتغير العام الذي ينتهي فيه SystemTable يُعاد تسميته إلى gSystemTable.

  3. المتغير العام الذي ينتهي فيه SystemTable->BootServices يُعاد تسميته إلى gBootServices.

  4. المتغير العام الذي ينتهي فيه SystemTable->RuntimeServices يُعاد تسميته إلى gRuntimeServices.

سيتم تتبع تعليمات الاستدعاء (Call) حتى عمق مستوى واحد فقط، حيث أن معظم الملفات القابلة للتنفيذ تنسخ مراجع الجداول في نقطة الدخول أو في دالة يتم استدعاؤها من نقطة الدخول. غيّر MAX_STACK_DEPTH إذا لزم الأمر.

update_structs()

تبحث عن المراجع المتقاطعة (cross-references) للجداول التي تمت إعادة تسميتها أعلاه، وتحدّث أسمائها لتكون إزاحات هياكل (struct offsets) من الهياكل المناسبة. إذا فشلت rename_tables() فستحتاج إلى إعادة تسمية الأشياء يدويًا كما هو موضح أعلاه لكي يعمل هذا بشكل صحيح.

على سبيل المثال:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

يصبح:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

تبحث عن المعرفات الفريدة (GUIDs) في مقاطع البيانات وتعيد تسميتها. تم استخراج 470 معرفًا فريدًا لبروتوكولات من مصدر TianoCore، وسيتم إضافة المعرفات الفريدة الخاصة (Apple وغيرها من البائعين) عند مواجهتها.

go()

طريقة ملائمة تقوم بكل ما سبق.

الاستخدام

  1. قم بتحميل ملف EFI الثنائي في IDA Pro

  2. استورد behemoth.h لتعريف هياكل البيانات اللازمة

  3. أضف الهياكل من الأنواع المحلية إلى قاعدة بيانات IDB الخاصة بك

  4. شغّل efiutils.py لإضافته إلى مسار بايثون (أو افعل ذلك بطريقة أخرى)

  5. ألقِ نظرة على الكود/سلاسل التوثيق، ولكن على الأرجح:

    root@kitploit:~
     import efiutils; efiutils.go()
    

لاستخدام محمّل صور TE te_loader.py، قم بتثبيته كما تفعل مع أي محمّل آخر. على نظام OS X يتم ذلك عن طريق نسخه أو إنشاء رابط رمزي (symlink) له داخل مجلد المحمّلات في idaq.app/Contents/MacOS/loaders/.

تنزيل الأداة