
Pishi is a code coverage tool like kcov for macOS.
Pishi هي أداة إعادة كتابة ثنائية ثابتة مصممة لإدراج أدوات القياس في الكتل الأساسية داخل نواة XNU وداخل أي امتدادات نواة macOS (kexts).
بالنسبة لنواة XNU، تتيح لك Pishi إدراج أدوات القياس على مستوى دالة أو ملف أو مجلد. على سبيل المثال، يمكنك إدراج أدوات القياس في كل شيء داخل دليل /bsd/net/ أو التركيز تحديدًا على content_filter.c أو على دالة واحدة محددة في شيفرة مصدر XNU، مثل vnode_getfromfd. هذا يتيح استهدافًا دقيقًا للـ fuzzing.
بعد بناء Pishi وتثبيتها، يمكنك استخدام نسختي المعدّلة من libprotobuf-mutator والتي تتطلب تطبيق الرقعة الخاصة بي (لجعل libfuzzer واعيًا بـ Pishi) ثم قم ببناء LLVM للحصول على fuzzing لـ KEXT في نواة macOS واعٍ بالبنية واعٍ بالتغذية الراجعة باستخدام libFuzzer.
لمزيد من النقاشات التقنية، اقرأ MoreInfo. ولبدء fuzzing، اقرأ HowToFuzz
بالمقارنة مع طرق القياس الأخرى لنواة XNU:
ملاحظة حول الأمان والسلامة تجنب تشغيل Pishi على جهازك الشخصي؛ بدلاً من ذلك، استخدم جهاز أبحاث مخصصًا أنت مستعد لتحمل مخاطر تلفه.