Vulnerability Detection in AArch64 Machine Code Using a Digital Twin
Oleksandr Mostovyi, Denys Symonov
Abstract
This paper proposes an explainable digital twin for vulnerability detection in AArch64 machine code without access to source code. The digital twin reproduces the concrete execution of a program and preserves the state of registers, processor flags, memory, and live allocated blocks. Each instruction is transformed into a trace event containing the instruction name, operand values, and the post-instruction state. Vulnerabilities are represented as symbolic rules in Kleene algebra with tests: each rule specifies an event sequence and predicates over the machine state. This approach enables the detection of not only isolated unsafe instructions but also multi-step execution patterns. The rules are compiled into finite automata that scan the trace without using an SMT solver. The experimental evaluation covers three CWE classes: integer overflow (CWE-190), null pointer dereference (CWE-476), and heap buffer overflow (CWE-122). The system detected all three predefined vulnerabilities and produced no report on the safe trace. Each detection result includes the triggered rule, the trace position, and the concrete state values, thereby providing a reproducible explanation.
Create a lesson
Related papers
Analog Pin Directionality as an Exfiltration Attack Surface in Mixed-Signal ICs
Ramana Ranganatham, Chirag Adiga, Michael Zuzak et al.
Characterizing Network Centralization and Observability in the Remote MCP Ecosystem
Muhammad Abdullah Sohail
When Agents Look Like Beacons: NIDS Evasion by Model Context Protocol Traffic
Muhammad Abdullah Sohail
Hamming Ideals and Grobner Bases for ISD-like Syndrome Decoding
Roberto La Scala, Marco Marchesin, Sharwan K. Tiwari
ASLEval: Measuring Privacy Exposure Displacement in LLM Agent Sessions
Guosen Wu, Huizhen Huang, Guoxiong Long et al.
CASHEWS: Source Preprocessor for LLM-based Malicious Package Detection
Jean-Charles Noirot Ferrand, David Adei, Anders Møller et al.