Know Your Neighborhood: General and Zero-Shot Capable Binary Function Search Powered by Call Graphlets

Joshua Collyer, Tim Watson, Iain Phillips
6/2/2024
cs.CRcs.AIcs.IR

No official code found. Best implementation: br0kej/kyn (5 stars, MIT, last commit 2024-11-16).

Abstract

Binary code similarity detection is an important problem with applications in areas such as malware analysis, vulnerability research and license violation detection. This paper proposes a novel graph neural network architecture combined with a novel graph data representation called call graphlets. A call graphlet encodes the neighborhood around each function in a binary executable, capturing the local and global context through a series of statistical features. A specialized graph neural network model operates on this graph representation, learning to map it to a feature vector that encodes semantic binary code similarities using deep-metric learning. The proposed approach is evaluated across five distinct datasets covering different architectures, compiler tool chains, and optimization levels. Experimental results show that the combination of call graphlets and the novel graph neural network architecture achieves comparable or state-of-the-art performance compared to baseline techniques across cross-architecture, mono-architecture and zero shot tasks. In addition, our proposed approach also performs well when evaluated against an out-of-domain function inlining task. The work provides a general and effective graph neural network-based solution for conducting binary code similarity detection.

View on arXivView PDF

Code Implementations(1)

br0kej/kynCommunity100%
MIT

The source code for the paper "Know Your Neighborhood: General and Zero-Shot Capable Binary Function Search Powered by Call Graphlets"

51PythonNov 11, 20241 years agoMIT

Similar Papers

Cite this paper

@article{collyer2024know,
  title  = {Know Your Neighborhood: General and Zero-Shot Capable Binary Function Search Powered by Call Graphlets},
  author = {Joshua Collyer and Tim Watson and Iain Phillips},
  year   = {2024},
  eprint = {2406.02606},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2406.02606v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2406.02606.svg)](https://codeofpaper.com/paper/2406.02606)

Discussion