Establishing a Refinement Relation between Binaries and Abstract Code

被引:2
作者
Verbeek, Freek [1 ]
Bockenek, Joshua [1 ]
Bharadwaj, Abhijith [1 ]
Ravindran, Binoy [1 ]
Roessle, Ian [2 ]
机构
[1] Virginia Tech, Blacksburg, VA 24061 USA
[2] Joint Artificial Intelligence Ctr, Washington, DC USA
来源
17TH ACM-IEEE INTERNATIONAL CONFERENCE ON FORMAL METHODS AND MODELS FOR SYSTEM DESIGN (MEMOCODE) | 2019年
关键词
x86-64; assembly; formal verification; refinement; abstraction; TRANSLATION VALIDATION; VERIFICATION; COMPILER;
D O I
10.1145/3359986.3361215
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
This paper presents a method for establishing a refinement relation between a binary and a high-level abstract model. The abstract model is based on standard notions of control flow, such as if-then-else statements, while loops and variable scoping. Moreover, it contains high-level data structures such as lists and records. This makes the abstract model amenable for off-the-shelf verification techniques such as model checking or interactive theorem proving. The refinement relation translates, e.g., sets of memory locations to high-level datatypes, or pointer arithmetic to standard HOL functions such as list operations or record accessors. We show applicability of our approach by verifying functions from a binary containing the Network Security Services framework from Mozilla Firefox, running on the x86-64 architecture. Our methodology is interactive. We show that we are able to verify approximately 1000 lines of x86-64 machine code (corresponding to about 400 lines of source code) in one person month.
引用
收藏
页数:5
相关论文
共 49 条
  • [1] Code obfuscation against abstraction refinement attacks
    Bruni, Roberto
    Giacobazzi, Roberto
    Gori, Roberta
    FORMAL ASPECTS OF COMPUTING, 2018, 30 (06) : 685 - 711
  • [2] An exploratory study of the relation between concrete and abstract product attributes
    Snelders, D
    Schoormans, JPL
    JOURNAL OF ECONOMIC PSYCHOLOGY, 2004, 25 (06) : 803 - 820
  • [3] Completeness refinement in abstract symbolic trajectory evaluation
    Dalla Preda, M
    STATIC ANALYSIS, PROCEEDINGS, 2004, 3148 : 38 - 52
  • [4] A Refinement Relation for Families of Timed Automata
    Cledou, Guillermina
    Proenca, Jose
    Barbosa, Luis S.
    FORMAL METHODS: FOUNDATIONS AND APPLICATIONS, SBMF 2017, 2017, 10623 : 161 - 178
  • [5] Abstract acceleration in linear relation analysis
    Gonnord, Laure
    Schrammel, Peter
    SCIENCE OF COMPUTER PROGRAMMING, 2014, 93 : 125 - 153
  • [6] Synthesizing Code for GPGPUs from Abstract Formal Models
    Blindell, Gabriel Hjort
    Menne, Christian
    Sander, Ingo
    PROCEEDINGS OF THE 2014 FORUM ON SPECIFICATION & DESIGN LANGUAGES (FDL), 2014,
  • [7] Stepwise refinement of heap-manipulating code in Chalice
    Leino, K. Rustan M.
    Yessenov, Kuat
    FORMAL ASPECTS OF COMPUTING, 2012, 24 (4-6) : 519 - 535
  • [8] Compiler Module of Abstract Machine Code for Formal Semantics Course
    Steingartner, William
    2021 IEEE 19TH WORLD SYMPOSIUM ON APPLIED MACHINE INTELLIGENCE AND INFORMATICS (SAMI 2021), 2021, : 193 - 199
  • [9] Large-scale system development using Abstract Data Types and refinement
    Furst, Andreas
    Hoang, Thai Son
    Basin, David
    Sato, Naoto
    Miyazaki, Kunihiko
    SCIENCE OF COMPUTER PROGRAMMING, 2016, 131 : 59 - 75
  • [10] The commuting V-diagram on the relation of refinement and testing
    Aichernig, BK
    COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2003, 2803 : 15 - 28