
Pishi is a code coverage tool like kcov for macOS.
Pishi è uno strumento di riscrittura binaria statica progettato per instrumentare basic blocks nel kernel XNU e in estensioni del kernel macOS (kext) arbitrarie.
Per il kernel XNU, Pishi consente di instrumentare a livello di funzione, file o cartella. Ad esempio, puoi instrumentare tutto nella directory /bsd/net/ o concentrarti specificamente su content_filter.c o su una singola funzione nel codice sorgente XNU, ad esempio vnode_getfromfd. questo consente un fuzzing mirato.
Dopo aver compilato e installato Pishi, puoi utilizzare la mia versione modificata di libprotobuf-mutator, che richiede di applicare la mia patch (per rendere libfuzzer consapevole di Pishi) e poi compilare LLVM per avere un fuzzing del KEXT del kernel macOS strutturalmente consapevole e basato sul feedback con libFuzzer.
Per discussioni più tecniche leggi MoreInfo. e per iniziare a fare fuzzing leggi HowToFuzz
Confronto con altri metodi di instrumentazione del kernel XNU:
Una nota su sicurezza e incolumità Evita di eseguire Pishi sul tuo dispositivo personale; usa invece un dispositivo di ricerca dedicato che sei disposto a rischiare di danneggiare.