Synthesizing Framework Models for Symbolic Execution

被引:22
|
作者
Jeon, Jinseong [1 ]
Qiu, Xiaokang [2 ]
Fetter-Degges, Jonathan [1 ]
Foster, Jeffrey S. [1 ]
Solar-Lezama, Armando [2 ]
机构
[1] Univ Maryland, College Pk, MD 20742 USA
[2] MIT, Cambridge, MA 02139 USA
关键词
Program Synthesis; Framework Model; Symbolic Execution; SKETCH;
D O I
10.1145/2884781.2884856
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Symbolic execution is a powerful program analysis technique, but it is difficult to apply to programs built using frameworks such as Swing and Android, because the framework code itself is hard to symbolically execute. The standard solution is to manually create a framework model that can be symbolically executed, but developing and maintaining a model is difficult and error-prone. In this paper, we present PASKET, a new system that takes a first step toward automatically generating Java framework models to support symbolic execution. PASKET'S focus is on creating models by instantiating design patterns. PASKET takes as input class, method, and type information from the framework API, together with tutorial programs that exercise the framework. From these artifacts and PASKET'S internal knowledge of design patterns, PASKET synthesizes a framework model whose behavior on the tutorial programs matches that of the original framework. We evaluated PASKET by synthesizing models for subsets of Swing and Android. Our results show that the models derived by PASKET are sufficient to allow us to use off-the-shelf symbolic execution tools to analyze Java programs that rely on frameworks.
引用
收藏
页码:156 / 167
页数:12
相关论文
共 50 条
  • [1] Synthesizing Smart Solving Strategy for Symbolic Execution
    Chen, Zehua
    Chen, Zhenbang
    Shuai, Ziqi
    Zhang, Yufeng
    Pan, Weiyu
    2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020), 2020, : 1262 - 1263
  • [2] A Generic Framework for Symbolic Execution
    Arusoaie, Andrei
    Lucanu, Dorel
    Rusu, Vlad
    SOFTWARE LANGUAGE ENGINEERING (SLE 2013), 2013, 8225 : 281 - 301
  • [3] Symbolic Execution of Alloy Models
    Siddiqui, Junaid Haroon
    Khurshid, Sarfraz
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2011, 6991 : 340 - 355
  • [4] Symbolic execution of alloy models
    Siddiqui, Junaid Haroon
    Khurshid, Sarfraz
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2011, 6991 LNCS : 340 - 355
  • [5] A Symbolic Execution Framework for Java']JavaScript
    Saxena, Prateek
    Akhawe, Devdatta
    Hanna, Steve
    Mao, Feng
    McCamant, Stephen
    Song, Dawn
    2010 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2010, : 513 - 528
  • [6] Anxiety: a dynamic symbolic execution framework
    Gerasimov, Alexander
    Vartanov, Sergey
    Ermakov, Mikhail
    Kruglov, Leonid
    Kutz, Daniil
    Novikov, Alexander
    Asryan, Seryozha
    2017 IVANNIKOV ISPRAS OPEN CONFERENCE (ISPRAS), 2017, : 16 - 21
  • [7] Symbolic Models for Isolated Execution Environments
    Jacomme, Charlie
    Kremer, Steve
    Scerri, Guillaume
    2017 IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY (EUROS&P), 2017, : 530 - 545
  • [8] SPOT: Testing Stream Processing Programs with Symbolic Execution and Stream Synthesizing
    Ye, Qian
    Lu, Minyan
    APPLIED SCIENCES-BASEL, 2021, 11 (17):
  • [9] Path Directed Symbolic Execution in the K Framework
    Asavoae, Irina Mariuca
    Asavoae, Mihail
    Lucanu, Dorel
    12TH INTERNATIONAL SYMPOSIUM ON SYMBOLIC AND NUMERIC ALGORITHMS FOR SCIENTIFIC COMPUTING (SYNASC 2010), 2011, : 133 - 141
  • [10] A generic framework for symbolic execution: A coinductive approach
    Lucanu, Dorel
    Rusu, Vlad
    Arusoaie, Andrei
    JOURNAL OF SYMBOLIC COMPUTATION, 2017, 80 : 125 - 163