Lune

PLDI2020Top-tier venue

Binary rewriting without control flow recovery

Gregory J. Duck, Xiang Gao, Abhik Roychoudhury

2020Year
77Citations
34Top-tier citations

Abstract

Static binary rewriting has numerous applications in software security and systems-such as hardening, repair, patching, instrumentation and debugging. As such, many different static binary rewriting tools have been proposed over the decades. Since binary rewriting can insert/delete/move instructions, most existing tools attempt to recover control flow information from the input binary, and then use this information to adjust the set of jump targets in the rewritten binary. Given that the static recovery of control flow information is a hard problem in general, most existing tools use heuristics or simplifying assumptions about the input binary, such as specific compilers, source languages, etc. However, the reliance on assumptions is known to be fragile and tends not to scale in practice. For example, most existing tools cannot handle very large/complex programs such as web browsers.

In this paper we present E9Patch, a tool that can statically rewrite x86_64 binaries without any knowledge of control flow information. To do so, E9Patch develops a suite of binary rewriting methodologies, such as instruction punning and eviction, that can insert jumps to trampolines without the need to move other instructions. This preserves the set of jump targets and eliminates the need for control flow recovery and related heuristics. As such, E9Patch is robust by design, and can scale to very large (>100MB) stripped binaries including web browsers such as Google Chrome and FireFox. We also evaluate the effectiveness of E9Patch against realistic applications such as binary instrumentation, hardening and patching.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext bfbc2947-874d-4d4c-aa2f-2536ea182bed

Cited by top-tier papers34

Ask how each one uses it

Builds on4

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines