حول
إنه إضافة IDA لتوسيع قدرات الهندسة العكسية لـ UEFI. مبني على ida-efitools مع مجموعة من الإصلاحات والميزات الجديدة.
يعمل مع كل من Python 2 و Python 3. يدعم الإصدارات القديمة من IDA Pro 7.x دون ضمانات.
الميزات
- تعريف GUIDs
- نشر الهياكل (السجلات، xrefs، متغيرات المكدس)
- تحديد البروتوكولات والواجهات
- تهيئة البروتوكولات غير المعروفة
الميزات الموسعة
- يمكن استخدامه كإضافة وكنص برمجي.
- يستورد تلقائيًا تعريفات C المخصصة (الهياكل، التعدادات، الاتحادات، typedefs) من دليل
efitools2/types
- يضبط صلاحيات مقطع الكود إلى RWE (لإصلاح الحذف غير الصحيح للكود الميت في عرض المفكك)
ميزات الإضافة فقط
- يوفر القدرة على مزامنة الأنواع الخارجية
- يطبع وينسخ إلى الحافظة EFI_GUID المحدد من عرض المفكك
- يستخرج EFI_GUID من تعيينات المتغيرات المحلية
ملاحظات مهمة
- يتم رفض behemoth.til لصالح uefi.til و uefi64.til الخاصة بـ IDA
- لا تستخدم uefi(64).til من IDA 7.3 لأنه يحتوي على أخطاء
الاستخدام
كنص برمجي
فقط قم بتشغيل efitools2/efitools.py من IDA.
كإضافة
مفاتيح الاختصار:
- Ctrl-Alt-E - يقوم بكل السحر
- Ctrl-Alt-G (على البيانات) - طباعة ونسخ EFI_GUID في موقع المؤشر الحالي
- Ctrl-Alt-G (على الكود) - استخراج ونسخ EFI_GUID من تعيين متغير محلي (ضع المؤشر عند تعيين
EFI_GUID.data1)
- F5 (على نافذة الأنواع المحلية) - مزامنة الأنواع المحلية من مجلد
types
التعديل
- يمكن تكوين مفاتيح الاختصار في ملف
ida-efitool2.py.
- يمكن العثور على بعض التفضيلات في ملف
efitools2/efitools.py.
- يجب وضع GUIDs المخصصة داخل ملف
efitools2/guids/custom.ini.
- يجب وضع البروتوكولات المخصصة داخل مجلد
efitools2/types. راجع الأمثلة المتاحة.
كيفية تصدير الأنواع المخصصة
إنها ميزة مدمجة في IDA. فقط افتح قائمة السياق للنوع في نافذة الأنواع المحلية وحدد إجراء 'Export to header file'.
المتطلبات الأساسية
pip install future - لـ Python 2 فقط.
pip install clipboard - إذا كنت تريد نسخ محتويات EFI_GUID تلقائيًا إلى الحافظة.
تثبيت الإضافة
فقط انسخ ملف ida-efitools2.py ومجلد efitools2 إلى دليل الإضافات في IDA.
الاعتمادات
@snare لقاعدة الكود الأصلية لـ ida-efiutils.
@danse-macabre لإعادة كتابة ida-efitools من الصفر.
@djpohly، @al3xtjames، @vutung2311 للمساهمات (الفروع).
@p-state (أنا) لبث حياة جديدة في هذا.