
Pishi is a code coverage tool like kcov for macOS.
Pishi는 XNU 커널과 임의의 macOS 커널 확장(kext)에서 basic blocks을 계측하도록 설계된 정적 바이너리 재작성 도구입니다.
XNU 커널의 경우, Pishi는 함수, 파일 또는 폴더 수준에서 계측할 수 있게 해줍니다. 예를 들어 /bsd/net/ 디렉터리의 모든 것을 계측하거나 content_filter.c만 집중적으로, 또는 XNU 소스 코드의 특정 함수 하나, 예를 들어 vnode_getfromfd만 계측할 수 있습니다. 이를 통해 타겟형 퍼징이 가능합니다.
Pishi를 빌드하고 설치한 후에는 libprotobuf-mutator의 수정 버전을 사용할 수 있습니다. 이 버전을 사용하려면 내 패치( libfuzzer를 Pishi 인식하도록 만들기 위한)를 적용한 다음 LLVM을 빌드하여 libFuzzer로 구조 인식, 피드백 인식 macOS 커널 KEXT 퍼징을 수행할 수 있습니다.
더 기술적인 논의는 MoreInfo를 읽어보세요. 퍼징을 시작하려면 HowToFuzz를 읽어보세요.
다른 XNU 커널 계측 방법과 비교:
보안 및 안전에 관한 참고 사항 개인 기기에서 Pishi를 실행하지 마십시오. 대신 손상될 위험을 감수할 수 있는 전용 연구용 기기를 사용하십시오.