2013 · 88 citations · 30 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureProgramming LanguagesAbstract Syntax TreesCompiler Back EndsCompiler ConstructionData-flow AnalysisIntermediate RepresentationSymbolic ExecutionBinary AnalysisBinary Code DecompilationBinary DecompilationCompiler DesignHigh-level Intermediate RepresentationIntermediate Representation DesignTransformationsVulnerability Detection
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.
30
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · 2005 · 2.3K citations
Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski et al. · 2006 · 789 citations