An Improved Offline Symbolic Execution Approach

被引:1
|
作者
Liu, Xiaolong [1 ]
Wu, Zehui [1 ]
Wei, Qiang [1 ]
机构
[1] State Key Lab Math Engn & Adv Comp, Zhengzhou 450002, Henan, Peoples R China
来源
PROCEEDINGS OF 2018 THE 2ND INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND ARTIFICIAL INTELLIGENCE (CSAI 2018) / 2018 THE 10TH INTERNATIONAL CONFERENCE ON INFORMATION AND MULTIMEDIA TECHNOLOGY (ICIMT 2018) | 2018年
关键词
offline symbolic execution; constraint; visualize; distributed pipeline; coverage; vulnerabilities;
D O I
10.1145/3297156.3297276
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
The offline symbolic execution technique generates a trace file by actually executing the program, and then the path constraint of a branch in the trace file is flipped and solved to generate a new sample. Since the offline symbolic execution technique analyzes only one path at a time, it occupies less memory resources. However, when the program has many branches, the offline symbolic execution technique has a problem of low execution efficiency. This paper proposes a visualized and distributed offline symbolic execution approach (VDO), which mainly improves the efficiency of offline symbolic execution technique from three aspects. Firstly, VDO only flips the branches of the specified range, so that it can reduce the flipping of branches with low test value and improve the pertinence of the test. Second, VDO uses the sample sequence number as the color value in the global control flow graph to visualize the branch that have been traversed, so that it can find the input sample corresponding to each branch, and can preferentially select those branches that have not been traversed for flipping. Finally, VDO disassembles the offline symbolic execution process into three phases, and builds a distributed pipeline based on the finite state machine to further increase efficiency. In order to evaluate VDO, we implemented this approach based on the BAP platform. The results of testing coreutils and the LAVA-M dataset showed that coverage increased by an average of more than 13%, and the total number of discovered vulnerabilities increased by 15 compared to the original BAP platform.
引用
收藏
页码:314 / 320
页数:7
相关论文
共 50 条
  • [41] Denotational Semantics for Symbolic Execution
    Voogd, Erik
    Klovstad, Asmund Aqissiaq Arild
    Johnsen, Einar Broch
    THEORETICAL ASPECTS OF COMPUTING, ICTAC 2023, 2023, 14446 : 370 - 387
  • [42] Directed Incremental Symbolic Execution
    Person, Suzette
    Yang, Guowei
    Rungta, Neha
    Khurshid, Sarfraz
    ACM SIGPLAN NOTICES, 2011, 46 (06) : 504 - 515
  • [43] Deconstructing Dynamic Symbolic Execution
    Ball, Thomas
    Daniel, Jakub
    DEPENDABLE SOFTWARE SYSTEMS ENGINEERING, 2015, 40 : 26 - 41
  • [44] Symbolic Execution for Java']JavaScript
    Santos, Jose Fragoso
    Maksimovic, Petar
    Grohens, Theotime
    Dolby, Julian
    Gardner, Philippa
    PPDP'18: PROCEEDINGS OF THE 20TH INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2018,
  • [45] Symbolic execution formally explained
    de Boer, Frank S.
    Bonsangue, Marcello
    FORMAL ASPECTS OF COMPUTING, 2021, 33 (4-5) : 617 - 636
  • [46] Dynamic Symbolic Execution for Polymorphism
    Li, Lian
    Lu, Yi
    Xue, Jingling
    CC'17: PROCEEDINGS OF THE 26TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, 2017, : 120 - 130
  • [47] Array representation in symbolic execution
    Coen-Porisini, Alberto, 1600, (18):
  • [48] SYMBOLIC EXECUTION AND PROGRAM TESTING
    KING, JC
    COMMUNICATIONS OF THE ACM, 1976, 19 (07) : 385 - 394
  • [49] A Memory Model for Symbolic Execution
    Dai Ziying
    Mao Xiaoguang
    Ma Xiaodong
    Wang Rui
    2009 INTERNATIONAL FORUM ON COMPUTER SCIENCE-TECHNOLOGY AND APPLICATIONS, VOL 1, PROCEEDINGS, 2009, : 20 - 24
  • [50] Directed Incremental Symbolic Execution
    Person, Suzette
    Yang, Guowei
    Rungta, Neha
    Khurshid, Sarfraz
    PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2011, : 504 - 515