Data Flows in You: Benchmarking and Improving Static Data-flow Analysis on Binary Executables
Open Access
- 4 June 2026
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 189-201
Abstract
Data-flow analysis is a critical component of security research. Theoretically, accurate data-flow analysis in binary executables is an undecidable problem, due to complexities of binary code. Practically, many binary analysis engines offer some data-flow analysis capability, but we lack understanding of the accuracy of these analyses, and their limitations. We address this problem by introducing a labeled benchmark data set, including 215, 072 microbenchmark test cases, mapping to 277, 072 binary executables, created specifically to evaluate data-flow analysis implementations. Additionally, we augment our benchmark set with dynamically-discovered data flows from 6 real-world executables. Using our benchmark data set, we evaluate three state of the art data-flow analysis implementations, in angr, Ghidra and Miasm and discuss their very low accuracy and reasons behind it. We further propose three model extensions to static data-flow analysis that significantly improve accuracy, achieving almost perfect recall (0.99) and increasing precision from 0.13 to 0.32 for the GCC compiler, and achieving a recall of 0.86 with a precision increase from 0.12 to 0.22 for Clang. Finally, we show that leveraging these model extensions in a vulnerability-discovery context leads to a tangible improvement in vulnerable instruction identification.Keywords
All Related Versions
Funding Information
- United States National Science Foundation (2146518)
This publication has 11 references indexed in Scilit:
- BinHunter: A Fine-Grained Graph Representation for Localizing Vulnerabilities in Binary Executables*2024
- SoK: All You Ever Wanted to Know About x86/x64 Binary Disassembly But Were Afraid to Ask2021
- BVDetector: A program slice-based binary code vulnerability intelligent detection systemInformation and Software Technology, 2020
- rev.ng: a unified binary analysis framework to recover CFGs and function boundaries2017
- WYSINWYXACM Transactions on Programming Languages and Systems, 2010
- WYSINWYX: What You See Is Not What You eXecuteLecture Notes in Computer Science, 2008
- Pin2005
- Interprocedural static slicing of binary executables2003
- Pointer analysis2001
- Undecidability of context-sensitive data-dependence analysisACM Transactions on Programming Languages and Systems, 2000