Program Analysis Combining Generalized Bit-Level and Word-Level Abstractions
Abstract interpretation is widely used to determine programs' numerical properties. However, current abstract domains primarily focus on mathematical semantics, which do not fully capture the complexities of real-world programs relying on machine integer semantics and involving extensive bit-vector operations. This paper presents a solution that combines a bit-level abstraction and a word-level abstraction to capture machine integer semantics. First, we generalize the bit-level abstraction used in the Linux eBPF verifier for determining known and unknown bits of real-world programs, by supplementing all required operations as a standard abstract domain. Based on this abstraction, we design an abstract domain that is signedness-aware and simultaneously retains both the above bit-level and the word-level bound information. These two levels of information cooperate via a standard reduced product operation to improve analysis precision. We implement the proposed domains in the Crab analyzer and the out-of-kernel eBPF verifier PREVAL. Experiments demonstrate their effectiveness in analyzing SV-COMP benchmark programs, assisting hardware designs, and eBPF verification.
Authors
- Guangsheng Fan (ORCID: https://orcid.org/0000-0003-3534-3495)
- Peisen Yao (ORCID: https://orcid.org/0000-0003-0342-9518)
- Wenyu Zhang
- Bai Yin (ORCID: https://orcid.org/0000-0003-2449-3287)
- Liqian Chen (ORCID: https://orcid.org/0000-0001-8084-8009)
- Ji Wang (ORCID: https://orcid.org/0000-0003-0637-8744)
Institutions
- National University of Defense Technology (CN)
- Zhejiang University (CN)
Publication Details
- Journal
- Proceedings of the ACM on software engineering.
- Published
- 2025-06-22
- DOI
- https://doi.org/10.1145/3728905
- Citations
- 1
- Primary Topic
- Formal Methods in Verification
- Type
- article
- Field-Weighted Citation Impact
- 1.50