English

A Broad Comparative Evaluation of x86-64 Binary Rewriters

Software Engineering 2022-09-09 v3

Abstract

Binary rewriting is a rapidly-maturing technique for modifying software for instrumentation, customization, optimization, and hardening without access to source code. Unfortunately, the practical applications of binary rewriting tools are often unclear to users because their limitations are glossed over in the literature. This, among other challenges, has prohibited the widespread adoption of these tools. To address this shortcoming, we collect ten popular binary rewriters and assess their generality across a broad range of input binary classes and the functional reliability of the resulting rewritten binaries. Additionally, we evaluate the performance of the rewriters themselves as well as the rewritten binaries they produce. The goal of this broad evaluation is to establish a shared context for future research and development of binary rewriting tools by providing a state of the practice for their capabilities. To support potential binary rewriter users, we also identify input binary features that are predictive of tool success and show that a simple decision tree model can accurately predict whether a particular tool can rewrite a target binary. The binary rewriters, our corpus of 3344 sample binaries, and the evaluation infrastructure itself are all freely available as open-source software.

Keywords

Cite

@article{arxiv.2203.13231,
  title  = {A Broad Comparative Evaluation of x86-64 Binary Rewriters},
  author = {Eric Schulte and Michael D. Brown and Vlad Folts},
  journal= {arXiv preprint arXiv:2203.13231},
  year   = {2022}
}

Comments

16 pages, 14 tables, 5 figures

R2 v1 2026-06-24T10:24:59.747Z