A complete formal semantics of x86-64 user-level instruction set architecture

S Dasgupta, D Park, T Kasampalis, VS Adve… - Proceedings of the 40th …, 2019 - dl.acm.org
We present the most complete and thoroughly tested formal semantics of x86-64 to date. Our
semantics faithfully formalizes all the non-deprecated, sequential user-level instructions of …

Scalable validation of binary lifters

S Dasgupta, S Dinesh, D Venkatesh, VS Adve… - Proceedings of the 41st …, 2020 - dl.acm.org
Validating the correctness of binary lifters is pivotal to gain trust in binary analysis, especially
when used in scenarios where correctness is important. Existing approaches focus on …

Sound C code decompilation for a subset of x86-64 binaries

F Verbeek, P Olivier, B Ravindran - Software Engineering and Formal …, 2020 - Springer
We present FoxDec: an approach to C code decompilation that aims at producing sound
and recompilable code. Formal methods are used during three phases of the decompilation …

Formally verified lifting of c-compiled x86-64 binaries

F Verbeek, J Bockenek, Z Fu, B Ravindran - Proceedings of the 43rd …, 2022 - dl.acm.org
Lifting binaries to a higher-level representation is an essential step for decompilation, binary
verification, patching and security analysis. In this paper, we present the first approach to …

Proving LTL properties of bitvector programs and decompiled binaries

YC Liu, C Pang, D Dietsch, E Koskinen, TC Le… - … Languages and Systems …, 2021 - Springer
There is increasing interest in applying verification tools to programs that have bitvector
operations. SMT solvers, which serve as a foundation for these tools, have thus increased …

Validating formal semantics by property-based cross-testing

P Bereczky, D Horpácsi, J Kőszegi, S Szeier… - Proceedings of the …, 2020 - dl.acm.org
To describe the behaviour of programs in a programming language we can define a formal
semantics for the language, and formalise it in a proof assistant. From this semantics we can …

[PDF][PDF] Lift-off: Trustworthy ARMv8 semantics from formal specifications

K Lam, N Coughlin - 2023 Formal Methods in Computer-Aided …, 2023 - library.oapen.org
Disassembly and lifting tools are essential in the verification of software binaries. However,
existing tools are difficult to validate and hence not suitable when high levels of assurance …

Defining interfaces between hardware and software: Quality and performance

AD Reid - 2019 - theses.gla.ac.uk
One of the most important interfaces in a computer system is the interface between hardware
and software. This interface is the contract between the hardware designer and the …

Highly Automated Formal Proofs over Memory Usage of Assembly Code

F Verbeek, JA Bockenek, B Ravindran - … on Tools and Algorithms for the …, 2020 - Springer
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 …

Formal verification of memory preservation of x86-64 binaries

JA Bockenek, F Verbeek, P Lammich… - … Safety, Reliability, and …, 2019 - Springer
Formal verification of a binary can provide high software assurance, even when the source
code is unavailable. It is, however, inherently hard due to the low level of abstraction …