Loading [MathJax]/extensions/MathMenu.js
GraphBinMatch: Graph-Based Similarity Learning for Cross-Language Binary and Source Code Matching | IEEE Conference Publication | IEEE Xplore

GraphBinMatch: Graph-Based Similarity Learning for Cross-Language Binary and Source Code Matching


Abstract:

Matching binary to source code and vice versa has various applications in different fields, such as computer security, software engineering, and reverse engineering. Even...Show More

Abstract:

Matching binary to source code and vice versa has various applications in different fields, such as computer security, software engineering, and reverse engineering. Even though there exist methods that try to match source code with binary code to accelerate the reverse engineering process, most of them are designed to focus on one programming language. However, in real life, programs are developed using different programming languages depending on their requirements. Thus, cross-language binary-to-source code matching has recently gained more attention. Nonetheless, the existing approaches still struggle to have precise predictions due to the inherent difficulties when the problem of matching binary code and source code needs to be addressed across programming languages. In this paper, we address the problem of cross-language binary source code matching. We propose GraphBinMatch, an approach based on a graph neural network that learns the similarity between binary and source codes. We evaluate GraphBinMatch on several tasks, such as cross-language binary-to-source code matching and cross-language source-to-source matching. We also evaluate the performance of our approach on single-language binary-to-source code matching. Experimental results show that GraphBinMatch significantly outperforms state-of-the-art, with improvements as high as 15% over the F1 score.
Date of Conference: 27-31 May 2024
Date Added to IEEE Xplore: 26 July 2024
ISBN Information:
Conference Location: San Francisco, CA, USA

Funding Agency:


I. Introduction

Binary code is a collection of instructions that can be executed by computing systems directly, whereas source code, which programmers write, is readable and understandable. Binary-to-source code matching is a technique to evaluate the likeliness of binary code and source code. This is an important aspect of many security software engineering tasks, such as vulnerability [1] and malware detection [2] and reverse engineering [3], [4].

Contact IEEE to Subscribe

References

References is not available for this document.