
إضافة IDA للكشف الآلي عن الكود المبهم وتسطيح تدفق التحكم في الملفات الثنائية باستخدام التحليل الإرشادي وتصور شجرة السيادة.
من تأليف: mcdulltii
اكتشاف تلقائي للكود المُعتم وآلات الحالة الأخرى
نصوص برمجية لاكتشاف الكود المُعتم وآلات الحالة في الملفات الثنائية تلقائيًا.
يعتمد التنفيذ على IDA 7.4+ (Python3). اطّلع على منشورات المدونة التالية لمزيد من المعلومات حول تنفيذ Binary Ninja:
يتم إنشاء القيم الكشفية (Heuristic) استنادًا إلى منشورات المدونة أعلاه، ويتم ترتيبها (عند التشغيل في وضع All Functions) تنازليًا بناءً على تعقيداتها الكشفية.
نظرًا للطبيعة التكرارية لرسم شجرة المهيمن (dominator tree) لكل وظيفة موجودة داخل الملف الثنائي، فإن التطبيق والتكاليف الزمنية مرتفعة، على الرغم من تطبيق تعدد المسارات (threading).
باستخدام PyQt لتصور الإضافة، يمكن للمستخدمين تخصيص تحليل الوظائف الكشفية على الملف الثنائي بشكل أكبر.
PyQt5
انسخ مجلد obfDetect وملف obfDetect.py إلى دليل إضافات IDA.
عندما ينتهي IDA من تحميل ملف ثنائي بنجاح، سيقوم السكريبت بطباعة شعاره في وحدة تحكم IDC/Python.
يمكن تشغيل السكريبت عبر شريط أدوات File كما هو موضح أدناه. أو باستخدام Ctrl-Shift-H.

يمكن إعادة تسمية أسماء الوظائف في جدول الإخراج باستخدام n، وبالتالي سيتم تحديث أسماء الوظائف في IDA المحددة بعنوان الوظيفة.
عند النقر على مربع إدخال اسم ملف التصدير، سيظهر نافذة منبثقة لاختيار الملف يمكن التنقل فيها إلى موقع حفظ مخصص.
Run لبدء التحليلExport filename لاختيار موقع التصدير، ثم انقر على زر Export لتصدير الجدول بتنسيق csv

