PeAR: A Static Binary Rewriting Framework for Binary-Only Fuzzing
For security researchers and developers of binary-only fuzzers, PeAR provides a practical SBI-based alternative to DBI, reducing runtime overhead while maintaining effectiveness.
The paper presents PeAR, a static binary rewriting framework for binary-only fuzzing, demonstrating that static binary instrumentation (SBI) can achieve accuracy, scalability, and performance comparable to dynamic binary instrumentation (DBI). PeAR instruments 88% of FUZZBENCH targets, achieves a 4x median throughput improvement with persistent mode and shared memory, and attains coverage comparable to compiler-based instrumentation.
Binary-only fuzzing is a key technique for finding bugs in close-source software. Without access to source code, the fuzzer must rely on static or dynamic binary instrumentation for coverage guidance. In practice, most fuzzers favor dynamic binary instrumentation (DBI), accepting runtime overhead to avoid the perceived accuracy and soundness challenges associated with static binary instrumentation (SBI). We show that these concerns are unwarranted, and that accurate, scalable~SBI is achievable using off-the-shelf frameworks. Building on these frameworks, we develop PeAR, an extensible binary-only fuzzing framework. We demonstrate PeAR's versatility by implementing several modern fuzzer features -- including, deferred initialization, persistent mode, and shared-memory fuzzing. We evaluate PeAR over 4.25 CPU-yrs of fuzzing on the FUZZBENCH benchmark and find that PeAR: (i) successfully instruments 88% of FUZZBENCH targets, comparable to the best SBI-based fuzzers; (ii) achieves a median throughput improvement of 4x when using persistent mode and shared memory fuzzing; and (iii) attains coverage comparable to compiler-based instrumentation. Our results show that SBI is a practical and effective technique for binary-only fuzzing, and that modern binary rewriting frameworks can apply complex instrumentation with high granularity and negligible performance compromise.