Publication | Closed Access
StochFuzz: Sound and Cost-effective Fuzzing of Stripped Binaries by Incremental and Stochastic Rewriting
30
Citations
42
References
2021
Year
Unknown Venue
Software MaintenanceEngineeringVerificationComputer ArchitectureSoftware EngineeringSoftware AnalysisFormal VerificationSymbolic ExecutionFuzzing ProcedureStripped BinariesFuzzingDynamic CompilationComputer EngineeringComputer ScienceOptimizing CompilerStatic Program AnalysisMutation-based TestingProgram AnalysisSoftware TestingFormal MethodsCost-effective FuzzingRuntime FeedbackStochastic Rewriting
Fuzzing stripped binaries poses many hard challenges as fuzzers require instrumenting binaries to collect runtime feedback for guiding input mutation. However, due to the lack of symbol information, correct instrumentation is difficult on stripped binaries. Existing techniques either rely on hardware and expensive dynamic binary translation engines such as QEMU, or make impractical assumptions such as binaries do not have inlined data. We observe that fuzzing is a highly repetitive procedure providing a large number of trial-and-error opportunities. As such, we propose a novel incremental and stochastic rewriting technique StochFuzz that piggy-backs on the fuzzing procedure. It generates many different versions of rewritten binaries whose validity can be approved/disapproved by numerous fuzzing runs. Probabilistic analysis is used to aggregate evidence collected through the sample runs and improve rewriting. The process eventually converges on a correctly rewritten binary. We evaluate StochFuzz on two sets of real-world programs and compare with five other baselines. The results show that StochFuzz outperforms state-of-the-art binary-only fuzzers (e.g., e9patch, ddisasm, and RetroWrite) in terms of soundness and cost-effectiveness and achieves performance comparable to source-based fuzzers. StochFuzz is publicly available [1].
| Year | Citations | |
|---|---|---|
Page 1
Page 1