
Pishi is a code coverage tool like kcov for macOS.
Pishi é uma ferramenta de reescrita binária estática projetada para instrumentar basic blocks no kernel XNU e em extensões de kernel macOS arbitrárias (kexts).
Para o kernel XNU, o Pishi permite instrumentar no nível de função, arquivo ou pasta. Por exemplo, você pode instrumentar tudo no diretório /bsd/net/, focar especificamente em content_filter.c ou apenas em uma função específica no código-fonte do XNU, por exemplo vnode_getfromfd. Isso permite fuzzing direcionado.
Depois de compilar e instalar o Pishi, você pode usar minha versão modificada do libprotobuf-mutator, que exige que você aplique meu patch (para tornar o libfuzzer ciente do Pishi) e depois compile o LLVM para ter fuzzing de KEXTs do kernel macOS ciente da estrutura e do feedback usando o libFuzzer.
Para discussões mais técnicas, leia MoreInfo. E para iniciar o fuzzing, leia HowToFuzz
Em comparação com outros métodos de instrumentação do kernel XNU:
Uma nota sobre segurança e proteção Evite executar o Pishi no seu dispositivo pessoal; em vez disso, use um dispositivo de pesquisa dedicado que você esteja disposto a arriscar danificar.