Abstract Symbolic Automata

Abstract

We introduce a model for mixed syntactic/semantic approximation of programs based on symbolic finite automata (SFA). The edges of SFA are labeled by predicates whose semantics specifies the denotations that are allowed by the edge. We introduce the notion of abstract symbolic finite automaton (ASFA) where approximation is made by abstract interpretation of symbolic finite automata, acting both at syntactic (predicate) and semantic (denotation) level. We investigate in the details how the syntactic and semantic abstractions of SFA relate to each other and contribute to the determination of the recognized language. Then we introduce a family of transformations for simplifying ASFA. We apply this model to prove properties of commonly used tools for similarity analysis of binary executables. Following the structure of their control flow graphs, disassembled binary executables are represented as (concrete) SFA, where states are program points and predicates represent the (possibly infinite) I/O semantics of each basic block in a constraint form. Known tools for binary code analysis are viewed as specific choices of symbolic and semantic abstractions in our framework, making symbolic finite automata and their abstract interpretations a unifying model for comparing and reasoning about soundness and completeness of analyses of low-level code.

Document Details

Document Type
Pub Defense Publication
Publication Date
Jan 14, 2015
Source ID
10.1145/2775051.2676986

Entities

People

  • Arun Lakhotia
  • Isabella Mastroeni
  • Mila Dalla Preda
  • Roberto Giacobazzi

Organizations

  • Air Force Research Laboratory
  • Ministry of Education, Universities and Research
  • Tulane University of Louisiana
  • University of Verona

Tags

Fields of Study

  • Computer science

Readers

  • Computational Linguistics