2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST) 2018
DOI: 10.1109/icst.2018.00024
|View full text |Cite
|
Sign up to set email alerts
|

Finding Substitutable Binary Code for Reverse Engineering by Synthesizing Adapters

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
5
1

Relationship

2
4

Authors

Journals

citations
Cited by 6 publications
(5 citation statements)
references
References 30 publications
0
5
0
Order By: Relevance
“…The goal of our technique is to translate 2 loops such as the one in Figure 1 into calls to standard string functions. Our technique uses a counterexample-guided inductive synthesis (CEGIS) algorithm [44] inspired by Sharma et al 's work on synthesizing adaptors between C functions with overlapping functionality but different interfaces [42]. This CEGIS approach is based on dynamic symbolic execution, a program analysis technique that can automatically explore multiple paths through a program by using a constraint solver [8].…”
Section: Techniquementioning
confidence: 99%
See 2 more Smart Citations
“…The goal of our technique is to translate 2 loops such as the one in Figure 1 into calls to standard string functions. Our technique uses a counterexample-guided inductive synthesis (CEGIS) algorithm [44] inspired by Sharma et al 's work on synthesizing adaptors between C functions with overlapping functionality but different interfaces [42]. This CEGIS approach is based on dynamic symbolic execution, a program analysis technique that can automatically explore multiple paths through a program by using a constraint solver [8].…”
Section: Techniquementioning
confidence: 99%
“…Our synthesis approach is inspired by Sharma et al 's work on synthesizing adapters between different C library implementations [42]. Their vocabulary gadgets are able to translate the interface of one library into that of another.…”
Section: Counterexample-guided Synthesismentioning
confidence: 99%
See 1 more Smart Citation
“…An example from previous work of an application of binary symbolic execution for reasoning about component behavior is Sharma et al's adaptor synthesis [9]. Adaptor synthesis reasons about the behavior of two components using a counter-example guided synthesis loop to determine if one can be wrapped to serve as a replacement for the other.…”
Section: Adaptor Synthesismentioning
confidence: 99%
“…Originally developed in the 1970s [19], [10], symbolic execution is a convenient building block for program analysis, since arbitrary query predicates can be combined with the logical program representation, and solutions to these constraints are program inputs illustrating the queried behavior. Some of the applications of symbolic execution include test generation [15,26], equivalence checking [25,28], vulnerability finding [31,32], program repair [22], invariant discovery [1], and protocol correctness checking [33]. Symbolic execution tools are available for many languages, including CREST [7] for C source code, KLEE [8] for C/C++ via LLVM, JDart [21] and Symbolic PathFinder (SPF) [24] for Java, and S2E [9], FuzzBALL [4], and angr [31] for binary code.…”
Section: Introductionmentioning
confidence: 99%