SEAICLAug 10, 2024

ViC: Virtual Compiler Is All You Need For Assembly Code Search

arXiv:2408.06385v113 citationsh-index: 7
Originality Incremental advance
AI Analysis

This addresses the challenge of building high-quality datasets for reverse engineers, though it is incremental as it builds on existing LLM methods.

The paper tackled the problem of assembly code search by training a Large Language Model as a Virtual Compiler to generate datasets, resulting in a 26% improvement over the leading baseline.

Assembly code search is vital for reducing the burden on reverse engineers, allowing them to quickly identify specific functions using natural language within vast binary programs. Despite its significance, this critical task is impeded by the complexities involved in building high-quality datasets. This paper explores training a Large Language Model (LLM) to emulate a general compiler. By leveraging Ubuntu packages to compile a dataset of 20 billion tokens, we further continue pre-train CodeLlama as a Virtual Compiler (ViC), capable of compiling any source code of any language to assembly code. This approach allows for virtual compilation across a wide range of programming languages without the need for a real compiler, preserving semantic equivalency and expanding the possibilities for assembly code dataset construction. Furthermore, we use ViC to construct a sufficiently large dataset for assembly code search. Employing this extensive dataset, we achieve a substantial improvement in assembly code search performance, with our model surpassing the leading baseline by 26%.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes