A compiler-level intermediate representation based binary analysis and rewriting system

Kapil Anand, Matthew Smithson, Khaled ElWazeer, Aparna Kotha, Jim Gruen, Nathan Giles, Rajeev K. Barua · 2013

This paper presents component techniques essential for converting executables to a high-level intermediate representation (IR) of an existing compiler. The compiler IR is then employed for three distinct applications: binary rewriting using the compiler's binary back-end, vulnerability detection using source-level symbolic execution, and source-code recovery using the compiler's C backend. Our techniques enable complex high-level transformations not possible in existing binary systems, address a major challenge of input-derived memory addresses in symbolic execution and are the first to enable recovery of a fully functional source-code.

Read the paper · More papers on PaperTik