
إضافة بايثون لـ IDA لفحص الملفات الثنائية باستخدام قواعد Yara
استخدم إضافة IDA Python هذه لمسح ملفك الثنائي بقواعد Yara. سيتم عرض جميع نتائج مطابقة قواعد Yara مع إزاحتها بحيث يمكنك الانتقال إليها بسرعة!
🍻 كل الفضل في هذه الإضافة والكود يعود إلى David Berard (@p0ly) 🍻
هذه الإضافة منسوخة من إضافة David الممتازة findcrypt-yara plugin. هذه الإضافة توسع إضافته لاستخدام أي قاعدة Yara.
يمكن تشغيل الإضافة من القائمة باستخدام Edit->Plugins->FindYara أو باستخدام اختصار لوحة المفاتيح Ctrl-Alt-Y. عند التشغيل، ستفتح FindYara نافذة اختيار ملف تسمح لك بتحديد ملف قواعد Yara الخاص بك. بمجرد تحديد ملف القاعدة، ستقوم FindYara بمسح الملف الثنائي المحمل للبحث عن التطابقات مع القواعد.
يتم عرض جميع نتائج المطابقة في مربع اختيار يتيح لك النقر المزدوج على التطابقات والانتقال إلى موقعها في الملف الثنائي.
تقوم FindYara بمسح أقسام PE المحملة في IDA، وهذا يعني أن قواعد Yara التي تتضمن تطابقات على رأس PE لن تتطابق في IDA. لا يقوم IDA بتحميل رأس PE كقسم قابل للمسح. أيضًا، إذا لم تختر Load resources عند تحميل ملفك الثنائي في IDA، فلن يكون قسم الموارد متاحًا للمسح.
قد يؤدي هذا إلى مواقف محبطة حيث تتطابق قاعدة Yara خارج IDA ولكن ليس عند استخدام FindYara. إذا واجهت هذا، حاول تعديل قاعدة Yara لإزالة التطابقات على رأس PE وأقسام الموارد.
قبل استخدام الإضافة، يجب تثبيت وحدة Python Yara في بيئة IDA الخاصة بك. أبسط طريقة للقيام بذلك هي استخدام pip من شل خارج IDA.
pip install yara-python.
لا تقم بتثبيت وحدة yara عن طريق الخطأ. وحدة yara python ستتداخل مع وحدة yara-python الخاصة بك، لذا يجب إلغاء تثبيتها إذا تم تثبيتها عن طريق الخطأ.
بمجرد تثبيت وحدة yara، ما عليك سوى نسخ أحدث إصدار من findyara.py إلى دليل إضافات IDA الخاص بك وستكون جاهزًا لبدء فحص Yara!
تم تطوير FindYara للاستخدام مع IDA 7+ و__Python 3__ وهي غير متوافقة مع الإصدارات الأقدم.
تتطلب FindYara تثبيت وحدة Yara في python بإصدار 4+. الإصدارات الأقدم من Yara غير متوافقة مع الإضافة وقد تسبب مشاكل بسبب التغييرات الجذرية في تنسيق مطابقة Yara.
شكر كبير لـ David Berard (@p0ly) - تابعه على GitHub هنا! هذا هو كوده في الغالب وهو من يستحق كل الفضل في إطار الإضافة الأصلي.
أيضًا، تحية لـ Alex Hanel @nullandnull - تابعه على GitHub هنا. ساعدني Alex في فهم كيفية استخدام أساليب IDC. كتابه IDA Python هو مرجع رائع!!