
Pishi is a code coverage tool like kcov for macOS.
Pishi es una herramienta de reescritura binaria estática diseñada para instrumentar basic blocks en el kernel XNU y en extensiones de kernel (kexts) arbitrarias de macOS.
para el kernel XNU, Pishi permite instrumentar a nivel de función, archivo o carpeta. Por ejemplo, puedes instrumentar todo en el directorio /bsd/net/ o centrarte específicamente en content_filter.c o en una sola función específica del código fuente de XNU, p. ej. vnode_getfromfd. esto permite fuzzing dirigido.
Después de compilar e instalar Pishi, puedes usar mi versión modificada de libprotobuf-mutator, que requiere que apliques mi parche (para hacer que libfuzzer sea consciente de Pishi) y luego compiles LLVM para tener fuzzing de KEXT del kernel macOS consciente de la estructura y de la retroalimentación con libFuzzer.
Para discusiones más técnicas, lee MoreInfo. y para comenzar a hacer fuzzing, lee HowToFuzz
En comparación con otros métodos de instrumentación del kernel XNU:
Una nota sobre seguridad y protección Evita ejecutar Pishi en tu dispositivo personal; en su lugar, usa un dispositivo de investigación dedicado que estés dispuesto a arriesgarte a dañar.