Litcius/Paper detail

Binary rewriting without control flow recovery

Gregory J. Duck, Xiang Gao, Abhik Roychoudhury

202073 citationsDOI

Abstract

Static binary rewriting has many important applications in software security and systems, such as hardening, repair, patching, instrumentation, and debugging. While many different static binary rewriting tools have been proposed, most rely on recovering control flow information from the input binary. The recovery step is necessary since the rewriting process may move instructions, meaning that the set of jump targets in the rewritten binary needs to be adjusted accordingly. Since the static recovery of control flow information is a hard problem in general, most tools rely on a set of simplifying heuristics or assumptions, such as specific compilers, specific source languages, or binary file meta information. However, the reliance on assumptions or heuristics tends to scale poorly in practice, and most state-of-the-art static binary rewriting tools cannot handle very large/complex programs such as web browsers.

Topics & Concepts

Computer scienceRewritingControl flowDebuggingProgramming languageHeuristicsStatic analysisControl flow analysisCompilerBinary numberTheoretical computer scienceProcedural programmingOperating systemMathematicsArithmeticInductive programmingProgramming paradigmSecurity and Verification in ComputingParallel Computing and Optimization TechniquesDistributed systems and fault tolerance
Binary rewriting without control flow recovery | Litcius