DeepAI AI Chat
Log In Sign Up

A Survey of Binary Code Similarity

by   Irfan Ul Haq, et al.

Binary code similarity approaches compare two or more pieces of binary code to identify their similarities and differences. The ability to compare binary code enables many real-world applications on scenarios where source code may not be available such as patch analysis, bug search, and malware detection and analysis. Over the past 20 years numerous binary code similarity approaches have been proposed, but the research area has not yet been systematically analyzed. This paper presents a first survey of binary code similarity. It analyzes 61 binary code similarity approaches, which are systematized on four aspects: (1) the applications they enable, (2) their approach characteristics, (3) how the approaches are implemented, and (4) the benchmarks and methodologies used to evaluate them. In addition, the survey discusses the scope and origins of the area, its evolution over the past two decades, and the challenges that lie ahead.


page 1

page 2

page 3

page 4


BinPro: A Tool for Binary Source Code Provenance

Enforcing open source licenses such as the GNU General Public License (G...

Towards a computational definition of the tresillo rhythm and its tracing in popular music

This paper discusses the use and popularity of a rhythm, which hencefort...

UniASM: Binary Code Similarity Detection without Fine-tuning

Binary code similarity detection (BCSD) is widely used in various binary...

Unleashing the Hidden Power of Compiler Optimization on Binary Code Difference: An Empirical Study

Since compiler optimization is the most common source contributing to bi...

Semantic-aware Binary Code Representation with BERT

A wide range of binary analysis applications, such as bug discovery, mal...

The Vision of Software Clone Management: Past, Present, and Future

Duplicated code or code clones are a kind of code smell that have both p...

dewolf: Improving Decompilation by leveraging User Surveys

Analyzing third-party software such as malware or firmware is a crucial ...