Hyperhook is a cross-platform harnessing framework designed for Nyx-based fuzzers.
It provides essential functionalities such as issuing hypercalls, managing function hooks and detours, setting up resident memory pages, and enabling custom signal and exception handlers. Currently, it supports userspace targets on both Linux and Windows.
- Function detours by address or name
- Module and function resolving
- Signal and exception handling
- Nyx guest-to-host communication via hypercalls
- Config file for PT trace modules
- Malloc resident pages for fuzz input
- Debug logging to host via hypercalls
- HyperHook example usage with Nyx and LibAFL
- kAFL's documentation for Nyx setup
- Generic LibAFL fuzzer for Nyx
We provide examples for both Windows and Linux.
There is also a selffuzz example for testing purposes.
For a detailed setup instructions check out our blog post.
When building HyperHook for Windows targets in release mode, the hooking seems to be unstable.