TL;DR
PalmTree is a novel assembly language model that learns high-quality instruction embeddings through self-supervised pre-training, significantly improving performance in binary analysis tasks.
Contribution
This paper introduces PalmTree, the first pre-trained assembly language model that captures complex instruction features for enhanced binary analysis.
Findings
PalmTree achieves superior intrinsic embedding quality.
Outperforms existing schemes in downstream binary analysis tasks.
Effective in capturing intra-instruction structures.
Abstract
Deep learning has demonstrated its strengths in numerous binary analysis tasks, including function boundary detection, binary code search, function prototype inference, value set analysis, etc. When applying deep learning to binary analysis tasks, we need to decide what input should be fed into the neural network model. More specifically, we need to answer how to represent an instruction in a fixed-length vector. The idea of automatically learning instruction representations is intriguing, however the existing schemes fail to capture the unique characteristics of disassembly. These schemes ignore the complex intra-instruction structures and mainly rely on control flow in which the contextual information is noisy and can be influenced by compiler optimizations. In this paper, we propose to pre-train an assembly language model called PalmTree for generating general-purpose instruction…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
