Enhancing Function Name Prediction using Votes-Based Name Tokenization and Multi-Task Learning
arXiv:2405.09112 · doi:10.1145/3660782
Abstract
Reverse engineers would acquire valuable insights from descriptive function names, which are absent in publicly released binaries. Recent advances in binary function name prediction using data-driven machine learning show promise. However, existing approaches encounter difficulties in capturing function semantics in diverse optimized binaries and fail to reserve the meaning of labels in function names. We propose Epitome, a framework that enhances function name prediction using votes-based name tokenization and multi-task learning, specifically tailored for different compilation optimization binaries. Epitome learns comprehensive function semantics by pre-trained assembly language model and graph neural network, incorporating function semantics similarity prediction task, to maximize the similarity of function semantics in the context of different compilation optimization levels. In addition, we present two data preprocessing methods to improve the comprehensibility of function names. We evaluate the performance of Epitome using 2,597,346 functions extracted from binaries compiled with 5 optimizations (O0-Os) for 4 architectures (x64, x86, ARM, and MIPS). Epitome outperforms the state-of-the-art function name prediction tool by up to 44.34%, 64.16%, and 54.44% in precision, recall, and F1 score, while also exhibiting superior generalizability.
24 pages, 10 figures, ACM ESEC/FSE 2024
References in corpus (16)
- Efficient Estimation of Word Representations in Vector Space
- FaceNet: A Unified Embedding for Face Recognition and Clustering
- A Comprehensive Survey on Graph Neural Networks
- Pre-trained Models for Natural Language Processing: A Survey
- Deep Recurrent Quantization for Generating Sequential Binary Codes
- Beyond Product Quantization: Deep Progressive Quantization for Image Retrieval
- CodeSearchNet Challenge: Evaluating the State of Semantic Code Search
- Incorporating Copying Mechanism in Sequence-to-Sequence Learning
- Structured Neural Summarization
- PalmTree: Learning an Assembly Language Model for Instruction Embedding
- Neural Reverse Engineering of Stripped Binaries using Augmented Control Flow Graphs
- Asteria: Deep Learning-based AST-Encoding for Cross-platform Binary Code Similarity Detection
- How Developers Choose Names
- How Professional Hackers Understand Protected Code while Performing Attack Tasks
- In Nomine Function: Naming Functions in Stripped Binaries with Neural Networks
- Symbol Preference Aware Generative Models for Recovering Variable Names from Stripped Binary