
पिशी macOS के लिए kcov जैसा एक कोड कवरेज टूल है।
Pishi एक स्थैतिक बाइनरी रीराइटिंग टूल है जिसे XNU कर्नेल और मनमाने macOS कर्नेल एक्सटेंशन (kexts) में basic blocks को इंस्ट्रूमेंट करने के लिए डिज़ाइन किया गया है।
XNU कर्नेल के लिए, Pishi आपको फ़ंक्शन, फ़ाइल, या फ़ोल्डर स्तर पर इंस्ट्रूमेंट करने की अनुमति देता है। उदाहरण के लिए, आप /bsd/net/ निर्देशिका में सब कुछ इंस्ट्रूमेंट कर सकते हैं या विशेष रूप से content_filter.c पर या XNU स्रोत कोड में केवल एक विशिष्ट फ़ंक्शन पर ध्यान केंद्रित कर सकते हैं, जैसे vnode_getfromfd। यह लक्षित फ़ज़िंग को सक्षम बनाता है।
Pishi को बनाने और स्थापित करने के बाद, आप libprotobuf-mutator का मेरा संशोधित संस्करण उपयोग कर सकते हैं, जिसके लिए आपको मेरा पैच लागू करना होगा ( libfuzzer को Pishi-जागरूक बनाने के लिए) फिर libFuzzer के साथ संरचना-जागरूक, फीडबैक-जागरूक macOS कर्नेल KEXT फ़ज़िंग हेतु LLVM का निर्माण करें।
अधिक तकनीकी चर्चाओं के लिए MoreInfo पढ़ें। और फ़ज़िंग शुरू करने के लिए HowToFuzz पढ़ें।
अन्य XNU कर्नेल इंस्ट्रूमेंटेशन विधियों से तुलना करें:
सुरक्षा और संरक्षा पर एक नोट अपने व्यक्तिगत डिवाइस पर Pishi चलाने से बचें; इसके बजाय, एक समर्पित शोध डिवाइस का उपयोग करें जिसे आप क्षति के जोखिम में डालने को तैयार हैं।