
Pishi is a code coverage tool like kcov for macOS.
Pishi ist ein statisches Binary-Rewriting-Werkzeug, das dazu dient, basic blocks im XNU-Kernel und in beliebigen macOS-Kernel-Erweiterungen (Kexts) zu instrumentieren.
Für den XNU-Kernel können Sie auf Funktions-, Datei- oder Ordnerebene instrumentieren. Beispielsweise können Sie alles im Verzeichnis /bsd/net/ instrumentieren oder sich gezielt auf content_filter.c oder nur eine bestimmte Funktion im XNU-Quellcode konzentrieren, z. B. vnode_getfromfd. Dies ermöglicht gezieltes Fuzzing.
Nachdem Sie Pishi gebaut und installiert haben, können Sie meine modifizierte Version von libprotobuf-mutator verwenden, was erfordert, dass Sie meinen Patch anwenden (um libfuzzer Pishi-bewusst zu machen), und dann LLVM bauen, um strukturbewusstes, feedback-bewusstes macOS-Kernel-KEXT-Fuzzing mit libFuzzer zu erhalten.
Für weiterführende technische Diskussionen lesen Sie MoreInfo. Und um mit dem Fuzzing zu beginnen, lesen Sie HowToFuzz
Im Vergleich zu anderen XNU-Kernel-Instrumentierungsmethoden:
Ein Hinweis zu Sicherheit und Schutz Vermeiden Sie es, Pishi auf Ihrem persönlichen Gerät auszuführen; verwenden Sie stattdessen ein dediziertes Forschungsgerät, dessen Beschädigung Sie in Kauf nehmen können.