2020 · 53 citations · 28 references
ComputingComputer ScienceCybersecurityComputer SecurityMalware AnalysisSoftware EngineeringCode Obfuscation AnalysisMalware ForensicsMalware Reverse EngineeringReverse EngineeringSoftware Security EngineeringTrojan AnalysisBinary DecompilationCode DecompilationCode DeobfuscationCompiler DesignCybersecurity VulnerabilityLegacy Application MigrationSoftware Comprehension ToolsSoftware Reverse Engineering
A C decompiler converts an executable (the output from a C compiler) into source code. The recovered C source code, once recompiled, will produce an executable with the same functionality as the original executable. With over twenty years of development, C decompilers have been widely used in production to support reverse engineering applications, including legacy software migration, security retrofitting, software comprehension, and to act as the first step in launching adversarial software exploitations. As the paramount component and the trust base in numerous cybersecurity tasks, C decompilers have enabled the analysis of malware, ransomware, and promoted cybersecurity professionals’ understanding of vulnerabilities in real-world systems.
28
Finding and understanding bugs in C compilers
Xuejun Yang, Yang Chen, Eric Eide et al. · 2011 · 733 citations
Compiler validation via equivalence modulo inputs
Vu Le, Mehrdad Afshari, Zhendong Su · 2014 · 372 citations
Static disassembly of obfuscated binaries
Christopher Kruegel, William Robertson, Fredrik Valeur et al. · 2004 · 286 citations
Gogul Balakrishnan, Thomas Reps · ACM Transactions on Programming Languages and Systems · 2010 · 274 citations · Full text