2012
DOI: 10.1145/2345156.2254116
|View full text |Cite
|
Sign up to set email alerts
|

Automated synthesis of symbolic instruction encodings from I/O samples

Abstract: Symbolic execution is a key component of precise binary program analysis tools. We discuss how to automatically boot-strap the construction of a symbolic execution engine for a processor instruction set such as x86, x64 or ARM. We show how to automatically synthesize symbolic representations of individual processor instructions from input/output examples and express them as bit-vector constraints. We present and compare various synthesis algorithms and instruction sampling strategies. We introduce a new synthe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2013
2013
2021
2021

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 11 publications
(3 citation statements)
references
References 27 publications
0
3
0
Order By: Relevance
“…Given the significant number of embedded devices not running Linux on ARM or MIPS, an important research task is to find ways of making it easier to create fast and accurate VXEs. There has been some encouraging recent work on automated synthesis of semantic specifications for specific ISAs such as x86 [34,39]. TaintInduce [14] shows that higher level semantics (i.e., taint propagation rules) can be dynamically inferred for an ISA.…”
Section: Creating Virtual Execution Enginesmentioning
confidence: 99%
“…Given the significant number of embedded devices not running Linux on ARM or MIPS, an important research task is to find ways of making it easier to create fast and accurate VXEs. There has been some encouraging recent work on automated synthesis of semantic specifications for specific ISAs such as x86 [34,39]. TaintInduce [14] shows that higher level semantics (i.e., taint propagation rules) can be dynamically inferred for an ISA.…”
Section: Creating Virtual Execution Enginesmentioning
confidence: 99%
“…Although automated test generation techniques such as concolic testing [4–7] generate test inputs achieving high test coverage, they sometimes fail to cover target branches due to several limitations of the techniques (e.g. external binary library APIs [8–10], symbolic pointers [11–13] and loop conditions with symbolic bound variables [14–16]).…”
Section: Motivating Examplementioning
confidence: 99%
“…Each formula was tested extensively against hardware semi-automatically to check correctness. In the process we rediscovered known instances in which the x86 instruction set deviates from its specification [12]. For such instances, our formulas encode a sound over-approximation of the observed hardware behavior and the specification.…”
Section: Vc Generationmentioning
confidence: 99%