BinRec: dynamic binary lifting and recompilation
Autor: | Dixin Zhou, David Gens, Michael Franz, Stijn Volckaert, Prabhu Rajasekaran, Taddeus Kroes, Yeoul Na, Herbert Bos, Anil Altinay, Cristiano Giuffrida, Adrian Dabrowski, Joseph Nash |
---|---|
Přispěvatelé: | Computer Systems, Network Institute, Systems and Network Security, Bilas, Angelos, Magoutis, Kostas, Markatos, Evangelos P, Kostic, Dejan, Seltzer, Margo I |
Jazyk: | angličtina |
Rok vydání: | 2020 |
Předmět: |
Semantics (computer science)
Computer science Spec# Binary number 020206 networking & telecommunications 02 engineering and technology Parallel computing Range (mathematics) 020204 information systems 0202 electrical engineering electronic engineering information engineering Code (cryptography) Binary code Heuristics Representation (mathematics) computer computer.programming_language |
Zdroj: | EuroSys '20: Proceedings of the Fifteenth European Conference on Computer Systems, 1-16 STARTPAGE=1;ENDPAGE=16;TITLE=EuroSys '20 EuroSys Altinay, A, Nash, J, Kroes, T, Rajasekaran, P, Zhou, D, Dabrowski, A, Gens, D, Na, Y, Volckaert, S, Giuffrida, C, Bos, H & Franz, M 2020, BinRec: dynamic binary lifting and recompilation . in EuroSys '20 : Proceedings of the Fifteenth European Conference on Computer Systems . Association for Computing Machinery, Inc, pp. 1-16, 15th European Conference on Computer Systems, EuroSys 2020, Heraklion, Greece, 27/04/20 . https://doi.org/10.1145/3342195.3387550 |
DOI: | 10.1145/3342195.3387550 |
Popis: | Binary lifting and recompilation allow a wide range of install-Time program transformations, such as security hardening, deobfuscation, and reoptimization. Existing binary lifting tools are based on static disassembly and thus have to rely on heuristics to disassemble binaries. In this paper, we present BinRec, a new approach to heuristic-free binary recompilation which lifts dynamic traces of a binary to a compiler-level intermediate representation (IR) and lowers the IR back to a "recovered" binary. This enables BinRec to apply rich program transformations, such as compiler-based optimization passes, on top of the recovered representation. We identify and address a number of challenges in binary lifting, including unique challenges posed by our dynamic approach. In contrast to existing frameworks, our dynamic frontend can accurately disassemble and lift binaries without heuristics, and we can successfully recover obfuscated code and all SPEC INT 2006 benchmarks including C++ applications. We evaluate BinRec in three application domains: i) binary reoptimization, ii) deobfuscation (by recovering partial program semantics from virtualization-obfuscated code), and iii) binary hardening (by applying existing compiler-level passes such as AddressSanitizer and SafeStack on binary code). |
Databáze: | OpenAIRE |
Externí odkaz: |