SBA: إطار تحليل ثنائي ثابت
ما هو إطار التحليل الثنائي الثابت الذي يجب أن يفعله؟
- تقليل جهود التنفيذ للتحليل الفردي
- فقط 250 LOC في C ++ لتنفيذ تحليل للتحقق من خصائص وظيفة.
- قابلة للتكوين بدرجة عالية
- إطار عمل تجريدي قائم على التفسير يسمح للمستخدم بتحديد المجالات التجريدية وتكوين تقييم التعليمات.
- منطق ودقيق حول ذاكرة المكدس
- نموذج ذاكرة المكدس عند التفاصيل على مستوى البايت ، وتقريب الصوت والكفاءة للتحديثات غير الدقيقة على المكدس.
- العمارة المحايدة
- تحليل Disouple من تفاصيل العمارة مثل لغات التجميع ومواصفات ABI.
ابدء
التبعيات
sudo apt-get install g++ ocaml camlp4-extra camlp4 tar cmake make
بناء SBA
mkdir build && cd build
cmake .. && make -j4
التطبيقات
تحليل جدول القفز
لتحليل كائن ثنائي ~/obj ، استخدم الأمر التالي:
./jump_table x86_64.auto ~/obj
بشكل افتراضي ، يقوم SBA بإنشاء ملفات ومخرجات مؤقتة تؤدي إلى /tmp/sba/ . يمكن تحديد هذه المسارات باستخدام -d و -o على النحو التالي:
./jump_table -d /tmp/sba/ -o /tmp/sba/result x86_64.auto ~/obj
المنشورات
ساهم SBA بشكل كبير في تنفيذ الأعمال التالية:
- تحليل جدول القفز القابل للتطوير والصوت ودقيق. ISSTA 2024.
- تفكيك دقيق للثنائيات المعقدة دون استخدام بيانات التعريف المترجم. Asplos 2023.
- أكثر أمانًا: أجهزة ثنائية فعالة وتتحمل الأخطاء. Usenix 2023.
- العملي العملي الرمز الثنائي العشوائي. ACSAC 2020.