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 条
  • [21] View integration in data warehouse design using typed Abstract State Machines and strong data refinement
    Ma, Hui
    Schewe, Klaus-Dieter
    Zhao, Jane
    QSIC 2006: SIXTH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE, PROCEEDINGS, 2006, : 175 - +
  • [22] On the Relationship between Code Verifiability and Understandability
    Feldman, Kobi
    Kellogg, Martin
    Chaparro, Oscar
    PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, : 211 - 223
  • [23] Verifying FreeRTOS' Cyclic Doubly Linked List Implementation: From Abstract Specification to Machine Code
    Sanan, David
    Yang, Liu
    Zhao Yongwang
    Xing Zhenchang
    Hinchey, Mike
    2015 20TH INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS), 2015, : 120 - 129
  • [24] Bridging the gap between test cases and requirements by abstract testing
    Merz, Florian
    Sinz, Carsten
    Post, Hendrik
    Gorges, Thomas
    Kropf, Thomas
    INNOVATIONS IN SYSTEMS AND SOFTWARE ENGINEERING, 2015, 11 (04) : 233 - 242
  • [25] Refinement of mixed-signal systems: Between heaven and hell
    Grimm, C
    Schroll, R
    Waldschmidt, K
    Advances in Design and Specification Languages for Socs: SELECTED CONTRIBUTIONS FROM FDL'04, 2005, : 5 - 20
  • [26] Asserting Functional Equivalence between C Code and SCADE Models in Code-to-Model Transformations
    Toennemann, Jan
    Aniculaesei, Adina
    Rausch, Andreas
    PROCEEDINGS OF THE 5TH BRAZILIAN SYMPOSIUM ON SYSTEMATIC AND AUTOMATED SOFTWARE TESTING, SAST 2020, 2020, : 60 - 68
  • [27] Assessing abstract thought and its relation to language with a new nonverbal paradigm: Evidence from aphasia
    Langland-Hassan, Peter
    Faries, Frank R.
    Gatyas, Maxwell
    Dietz, Aimee
    Richardson, Michael J.
    COGNITION, 2021, 211
  • [28] The interplay between replacement, reduction and refinement: considerations where the Three Rs interact
    de Boo, MJ
    Rennie, AE
    Buchanan-Smith, HM
    Hendriksen, CFM
    ANIMAL WELFARE, 2005, 14 (04) : 327 - 332
  • [29] A Refinement Technique for Duplication and Collision Between Features in Software Product Line Engineering
    Song, Cheeyang
    Lee, Soonbok
    Lee, Woojin
    INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2014, 24 (04) : 521 - 551
  • [30] A Kripke Logical Relation Between ML and Assembly
    Hur, Chung-Kil
    Dreyer, Derek
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 133 - 146