In recent years, research in binary analysis has witnessed a remarkable surge covering a wide variety of applications ranging from reverse debugging to identifying vulnerabilities in embedded devices. However, improving upon the state of the art requires evaluating the proposed techniques on large real-world binaries. Furthermore, to ensure the generalizability of results, we need to use different compilers and optimization options.

Today, we are happy to announce the public release of BCOVBench, the benchmark suite described in our ESEC/FSE'20 paper. The binaries can be found in the package bcov-benchmarks.tar.gz, which is available in our archive repository. This benchmark suite consists of 95 binaries in total. We compiled them from 8 widely-used packages, like FFmpeg and LLVM, using 4 different versions of clang and gcc, and 3 optimization levels, namely, Debug, Release, and LTO.

Additionally, we used bcov, the coverage analysis tool presented in the paper, to instrument all original binaries. In this respect, we separately applied the leaf-node and any-node instrumentation policies to produce two patched versions for each original binary. With this release, we make our evaluation easier to reproduce. Perhaps more importantly, we hope that our diverse set of real-world binaries can provide a useful resource to the research community.

If you have questions or comments, please reach out per email or by opening an issue in this repository.