Abstract
We present a methodology for generating a characterization of the memory used by an assembly program, as well as a formal proof that the assembly is bounded to the generated memory regions. A formal proof of memory usage is required for compositional reasoning over assembly programs. Moreover, it can be used to prove low-level security properties, such as integrity of the return address of a function. Our verification method is based on interactive theorem proving, but provides automation by generating pre- and postconditions, invariants, control-flow, and assumptions on memory layout. As a case study, three binaries of the Xen hypervisor are disassembled. These binaries are the result of a complex build-chain compiling production code, and contain various complex and nested loops, large and compound data structures, and functions with over 100 basic blocks. The methodology has been successfully applied to 251 functions, covering 12,252 assembly instructions.
Original language | English |
---|---|
Title of host publication | Tools and Algorithms for the Construction and Analysis of Systems |
Subtitle of host publication | 26th International Conference, TACAS 2020, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Dublin, Ireland, April 25–30, 2020, Proceedings, Part II |
Editors | Armin Biere, David Parker |
Place of Publication | Cham |
Publisher | Springer Open |
Chapter | 6 |
Pages | 98-117 |
Number of pages | 20 |
ISBN (Electronic) | 9783030452377 |
ISBN (Print) | 9783030452360 |
DOIs | |
Publication status | Published - 2020 |
Event | (Cancelled) 26th International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Dublin, Ireland Duration: 25 Apr 2020 → 30 Apr 2020 Conference number: 26 https://etaps.org/2020/tacas https://link.springer.com/content/pdf/10.1007%2F978-3-030-45237-7.pdf |
Publication series
Series | Lecture Notes in Computer Science (LNCS) series |
---|---|
Volume | 12079 |
ISSN | 0302-9743 |
Conference
Conference | (Cancelled) 26th International Conference on Tools and Algorithms for the Construction and Analysis of Systems |
---|---|
Abbreviated title | TACAS 2020 |
Country/Territory | Ireland |
City | Dublin |
Period | 25/04/20 → 30/04/20 |
Internet address |
Keywords
- Assembly
- Formal Verification
- Memory Usage
- x86-64