Framework synthesis for Symbolic Execution of Event-Driven Frameworks
نویسنده
چکیده
Title of dissertation: FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS Jinseong Jeon, Doctor of Philosophy, 2016 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Symbolic execution is a powerful program analysis technique, but it is very challenging to apply to programs built using event-driven frameworks, such as Android. The main reason is that the framework code itself is too complex to symbolically execute. The standard solution is to manually create a framework model that is simpler and more amenable to symbolic execution. However, developing and maintaining such a model by hand is difficult and error-prone. We claim that we can leverage program synthesis to introduce a high-degree of automation to the process of framework modeling. To support this thesis, we present three pieces of work. First, we introduced SymDroid, a symbolic executor for Android. While Android apps are written in Java, they are compiled to Dalvik bytecode format. Instead of analyzing an app’s Java source, which may not be available, or decompiling from Dalvik back to Java, which requires significant engineering effort and introduces yet another source of potential bugs in an analysis, SymDroid works directly on Dalvik bytecode. Second, we introduced Pasket, a new system that takes a first step toward automatically generating Java framework models to support symbolic execution. Pasket takes as input the framework API and tutorial programs that exercise the framework. From these artifacts and Pasket’s internal knowledge of design patterns, Pasket synthesizes an executable framework model by instantiating design patterns, such that the behavior of a synthesized model on the tutorial programs matches that of the original framework. Lastly, in order to scale program synthesis to framework models, we devised adaptive concretization, a novel program synthesis algorithm that combines the best of the two major synthesis strategies: symbolic search, i.e., using SAT or SMT solvers, and explicit search, e.g., stochastic enumeration of possible solutions. Adaptive concretization parallelizes multiple sub-synthesis problems by partially concretizing highly influential unknowns in the original synthesis problem. Thanks to adaptive concretization, Pasket can generate a large-scale model, e.g., thousands lines of code. In addition, we have used an Android model synthesized by Pasket and found that the model is sufficient to allow SymDroid to execute a range of apps. FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS
منابع مشابه
Title of dissertation : FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT - DRIVEN FRAMEWORKS
Title of dissertation: FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS Jinseong Jeon, Doctor of Philosophy, 2016 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Symbolic execution is a powerful program analysis technique, but it is very challenging to apply to programs built using event-driven frameworks, such as Android. The main reaso...
متن کاملProgram Synthesis for Program Analysis: Models and Drivers
In recent years, many program analysis tools have been proposed, with several promising results, e.g., using abstract interpretation [4] or symbolic execution [9] to find bugs in software systems [2, 3]. Despite a diversity of techniques on which those tools rely, almost all tools share a common problem: they focus on analyzing the application code. But applications are no longer written in iso...
متن کاملEvent Listener Analysis and Symbolic Execution for Testing GUI Applications
Graphical User Interfaces (GUIs) are composed of virtual objects, widgets, which respond to events triggered by user actions. Therefore, test inputs for GUIs are event sequences that mimic user interaction. The nature of these sequences and the values for certain widgets, such as textboxes, causes a two-dimensional combinatorial explosion. In this paper we present Barad, a GUI testing framework...
متن کاملSynthesis and Characterization of Nano-Structure Copper Oxide From Two Different Copper (II) Metal-Organic Framework Precursors
Nano-structured copper oxides were successfully prepared through direct calcination of 1D ladderlike metal-organic framework [Cu2(btec)(2,2'-bipy)2]∞, (btec = 1,2,4,5-benzenetetracarboxylate and 2,2'-bipy = 2,2'-bipyridine) and porous coordination polymer [Cu(BDC)(bipy)](BDCH2), (BDC = 1,4-benzenedicarboxylate; bipy = 4,4'-bipyridine). The nano-structure of the as-synthesized samples are charac...
متن کاملSynthesis of Different Copper Oxide Nano-Structures From Direct Thermal Decomposition of Porous Copper(ΙΙ) Metal-Organic Framework Precursors
Copper oxide nanostructures have been successfully synthesized via one-step solid-state thermolysis of two metal-organic frameworks, [Cu3(btc)2] (1) and [Cu(tpa).(dmf)] (2), (btc = benzene-1,3,5-tricarboxylate, tpa = therephtalic acid = 1,4-benzendicarboxylic acid and dmf = dimethyl formamide) under air atmosphere at 400, 500, and 600°C. It has also been found that the reaction temperature pla...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016