Expression Reduction from Programs in a Symbolic Binary Executor

نویسندگان

  • Anthony Romano
  • Dawson R. Engler
چکیده

Symbolic binary execution is a dynamic analysis method which explores program paths to generate test cases for compiled code. Throughout execution, a program is evaluated with a bit-vector theorem prover and a runtime interpreter as a mix of symbolic expressions and concrete values. Left untended, these symbolic expressions grow to negatively impact interpretation performance. We describe an expression reduction system which recovers sound, contextinsensitive expression reduction rules at run time from programs during symbolic evaluation. These rules are further refined offline into general rules which match larger classes of expressions. We demonstrate that our optimizer significantly reduces the number of theorem solver queries and solver time on hundreds of commodity programs compared to a default ad-hoc optimizer from a popular symbolic interpreter.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Facial expression recognition based on Local Binary Patterns

Classical LBP such as complexity and high dimensions of feature vectors that make it necessary to apply dimension reduction processes. In this paper, we introduce an improved LBP algorithm to solve these problems that utilizes Fast PCA algorithm for reduction of vector dimensions of extracted features. In other words, proffer method (Fast PCA+LBP) is an improved LBP algorithm that is extracted ...

متن کامل

KIL: An Abstract Intermediate Language for Symbolic Execution and Test Generation of C++ Programs

We present a declarative intermediate language KIL in a symbolic executor for C++ programs and show how to use KIL to control symbolic execution. KIL is an abstract language defined over LLVM bytecode; it provides a higher level model of C++ object operations and functions. KIL enables lazy function evaluation, object-level execution and reasoning, defining built-in efficient solvers, function ...

متن کامل

Joose: Java-based Object- Oriented Symbolic Executor

Joose is a Java-based Symbolic Executor which supports modularization of programs into classes. Basic integer and Boolean types are supported along with object types which are parameterized by a specific class expression. The system allows the correctness of the defined classes to be verified with respect to the defined specifications, allows the consistency of the specifications to be checked,...

متن کامل

Algebraic Matching of Vulnerabilities in a Low-Level Code

This paper explores the algebraic matching approach for detection of vulnerabilities in binary codes. The algebraic programming system is used for implementing this method. It is anticipated that models of vulnerabilities and programs to be verified are presented as behavior algebra and action language specifications. The methods of algebraic matching are based on rewriting rules and techniques...

متن کامل

A Tool for Symbolic Program Verification and Abstration

We give the description of a veriication tool taking boolean programs of guarded commands as input; internal representation of programs are sets of Binary Decision Diagrams (BDD) (one for each guarded command). It allows to construct an abstract program of the same form obtained using an abstraction relation given by a boolean expression on \concrete" and \abstract" variables. The tool allows t...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013