Litcius/Paper detail

Unleashing the hidden power of compiler optimization on binary code difference: an empirical study

Xiaolei Ren, Michael Ho, Jiang Ming, Yu Lei, Li Li

202155 citationsDOIOpen Access PDF

Abstract

Hunting binary code difference without source code (i.e., binary diffing) has compelling applications in software security. Due to the high variability of binary code, existing solutions have been driven towards measuring semantic similarities from syntactically different code. Since compiler optimization is the most common source contributing to binary code differences in syntax, testing the resilience against the changes caused by different compiler optimization settings has become a standard evaluation step for most binary diffing approaches. For example, 47 top-venue papers in the last 12 years compared different program versions compiled by default optimization levels (e.g., -Ox in GCC and LLVM). Although many of them claim they are immune to compiler transformations, it is yet unclear about their resistance to non-default optimization settings. Especially, we have observed that adversaries explored non-default compiler settings to amplify malware differences.

Topics & Concepts

CompilerComputer scienceBinary numberProgram optimizationRegister allocationProgramming languageSource codeOptimizing compilerSyntaxBinary codeCode (set theory)Dead code eliminationCode generationOperating systemRedundant codeArithmeticArtificial intelligenceSet (abstract data type)Key (lock)MathematicsAdvanced Malware Detection TechniquesSoftware Engineering ResearchSecurity and Verification in Computing
Unleashing the hidden power of compiler optimization on binary code difference: an empirical study | Litcius