2016 IEEE Symposium on Security and Privacy (SP) 2016
DOI: 10.1109/sp.2016.17
|View full text |Cite
|
Sign up to set email alerts
|

SOK: (State of) The Art of War: Offensive Techniques in Binary Analysis

Abstract: Finding and exploiting vulnerabilities in binary code is a challenging task. The lack of high-level, semantically rich information about data structures and control constructs makes the analysis of program properties harder to scale. However, the importance of binary analysis is on the rise. In many situations binary analysis is the only possible way to prove (or disprove) properties about the code that is actually executed. In this paper, we present a binary analysis framework that implements a number of anal… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
345
0
2

Year Published

2017
2017
2021
2021

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 623 publications
(347 citation statements)
references
References 41 publications
0
345
0
2
Order By: Relevance
“…Furthermore, we extend the feature set with the frequency of selected byte patterns known to characterize certain architectures, encoded as regular expressions to obtain a fair trade-off between expressive power and matching speed. We include the patterns of known function prologues and epilogues from the archinfo project part of angr, a binary analysis framework [3]. While this latter set of features is a signature and requires effort to adapt to further architectures, we remark that it is completely optional and allows ELISA to perform better in discriminating between similar architectures.…”
Section: Isa Identificationmentioning
confidence: 99%
See 2 more Smart Citations
“…Furthermore, we extend the feature set with the frequency of selected byte patterns known to characterize certain architectures, encoded as regular expressions to obtain a fair trade-off between expressive power and matching speed. We include the patterns of known function prologues and epilogues from the archinfo project part of angr, a binary analysis framework [3]. While this latter set of features is a signature and requires effort to adapt to further architectures, we remark that it is completely optional and allows ELISA to perform better in discriminating between similar architectures.…”
Section: Isa Identificationmentioning
confidence: 99%
“…cpu_rec [36] is a plugin for the popular binwalk tool that uses a statistical approach, based on Markov chains with similarity measures by cross-entropy computation, to detect the CPU architecture or a binary file, or of part of a binary file, among a corpus of 72 architectures. A completely different approach leverages static signatures: the Angr static analysis framework [3] includes a tool (Boyscout) to identify the CPU architecture of an executable by matching the file to a set of signatures containing the byte patterns of function prologues and epilogues of the known architectures, and picking the architecture with most matches; as a drawback, the signatures require maintenance and their quality and completeness is critical for the quality of the classification; also, this method may fail on heavily optimized or obfuscated code lacking of function prologues and epilogues.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…If the process is stopped by the conditional statement, the concolic engine is used to guide the next section and the fuzzer takes over again and searches for vulnerabilities in the deep path more quickly. Driller is a hybrid fuzzing tool using AFL (American Fuzzy Lop) [9] and Angr [18]. AFL is a fuzzer that generates and transforms input values through a genetic algorithm and Angr is an engine that performs symbol execution by converting binary codes into Valgrind's VEX IR, which is also known by Mayhem and S2E [19] as the most optimized symbol execution engine.…”
Section: Hybrid Fuzzingmentioning
confidence: 99%
“…Veritesting [9] is a combination of DSE and SSE, and has been integrated into the angr [29] platform as an effective selecting method to avoid path explosion. Veritesting starts with DSE, when the program encounters a branch and needs to fork new executions, it switches to an SSE-style approach.…”
Section: Pruning Redundance Strategymentioning
confidence: 99%