Logo image
IsaBIL: A Framework for Verifying (In)correctness of Binaries in Isabelle/HOL
   

IsaBIL: A Framework for Verifying (In)correctness of Binaries in Isabelle/HOL

Matt Griffin, Brijesh Dongol Azalea Raad
39th European Conference on Object-Oriented Programming, ECOOP 2025, Vol.333, pp.14:1-14:30
Leibniz International Proceedings in Informatics
39th European Conference on Object-Oriented Programming (ECOOP 2025) (Bergen, Norway, 30/06/2025–04/07/2025)
25/06/2025
Binary Analysis Platform Hoare Logic Incorrectness Logic Isabelle/HOL Theory of computation → Program reasoning Program reasoning
This paper presents IsaBIL, a binary analysis framework in Isabelle/HOL that is based on the widely used Binary Analysis Platform (BAP). Specifically, in IsaBIL, we formalise BAP’s intermediate language, called BIL and integrate it with Hoare logic (to enable proofs of correctness) as well as incorrectness logic (to enable proofs of incorrectness). IsaBIL inherits the full flexibility of BAP, allowing us to verify binaries for a wide range of languages (C, C++, Rust), toolchains (LLVM, Ghidra) and target architectures (x86, RISC-V), and can also be used when the source code for a binary is unavailable. To make verification tractable, we develop a number of big-step rules that combine BIL’s existing small-step rules at different levels of abstraction to support reuse. We develop high-level reasoning rules for RISC-V instructions (our main target architecture) to further optimise verification. Additionally, we develop Isabelle proof tactics that exploit common patterns in C binaries for RISC-V to discharge large numbers of proof goals (often in the 100s) automatically. IsaBIL includes an Isabelle/ML based parser for BIL programs, allowing one to automatically generate the associated Isabelle/HOL program locale from a BAP output. Taken together, IsaBIL provides a highly flexible proof environment for program binaries. As examples, we prove correctness of key examples from the Joint Strike Fighter coding standards and the MITRE database.

(1)

url
https://doi.org/10.4230/LIPIcs.ECOOP.2025.14
Published (Version of record)
1
Logo image