How Far Have We Gone in Binary Code Understanding Using Large Language Models

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Shang, Xiuwei, Cheng, Shaoyin, Chen, Guoqiang, Zhang, Yanming, Hu, Li, Yu, Xiao, Li, Gangyang, Zhang, Weiming, Yu, Nenghai
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866916451291496448
author Shang, Xiuwei
Cheng, Shaoyin
Chen, Guoqiang
Zhang, Yanming
Hu, Li
Yu, Xiao
Li, Gangyang
Zhang, Weiming
Yu, Nenghai
author_facet Shang, Xiuwei
Cheng, Shaoyin
Chen, Guoqiang
Zhang, Yanming
Hu, Li
Yu, Xiao
Li, Gangyang
Zhang, Weiming
Yu, Nenghai
contents Binary code analysis plays a pivotal role in various software security applications, such as software maintenance, malware detection, software vulnerability discovery, patch analysis, etc. However, unlike source code, understanding binary code is challenging for reverse engineers due to the absence of semantic information. Therefore, automated tools are needed to assist human players in interpreting binary code. In recent years, two groups of technologies have shown promising prospects: (1) Deep learning-based technologies have demonstrated competitive results in tasks related to binary code understanding, furthermore, (2) Large Language Models (LLMs) have been extensively pre-trained at the source-code level for tasks such as code understanding and generation. This makes participants wonder about the ability of LLMs in binary code understanding. In this work, we propose a benchmark to evaluate the effectiveness of LLMs in real-world reverse engineering scenarios. The benchmark covers two key binary code understanding tasks, including function name recovery and binary code summarization. We gain valuable insights into their capabilities and limitations through extensive evaluations of popular LLMs using our benchmark. Our evaluations reveal that existing LLMs can understand binary code to a certain extent, thereby improving the efficiency of binary code analysis. Our results highlight the great potential of the LLMs in advancing the field of binary code understanding.
format Preprint
id arxiv_https___arxiv_org_abs_2404_09836
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle How Far Have We Gone in Binary Code Understanding Using Large Language Models
Shang, Xiuwei
Cheng, Shaoyin
Chen, Guoqiang
Zhang, Yanming
Hu, Li
Yu, Xiao
Li, Gangyang
Zhang, Weiming
Yu, Nenghai
Software Engineering
Cryptography and Security
Binary code analysis plays a pivotal role in various software security applications, such as software maintenance, malware detection, software vulnerability discovery, patch analysis, etc. However, unlike source code, understanding binary code is challenging for reverse engineers due to the absence of semantic information. Therefore, automated tools are needed to assist human players in interpreting binary code. In recent years, two groups of technologies have shown promising prospects: (1) Deep learning-based technologies have demonstrated competitive results in tasks related to binary code understanding, furthermore, (2) Large Language Models (LLMs) have been extensively pre-trained at the source-code level for tasks such as code understanding and generation. This makes participants wonder about the ability of LLMs in binary code understanding. In this work, we propose a benchmark to evaluate the effectiveness of LLMs in real-world reverse engineering scenarios. The benchmark covers two key binary code understanding tasks, including function name recovery and binary code summarization. We gain valuable insights into their capabilities and limitations through extensive evaluations of popular LLMs using our benchmark. Our evaluations reveal that existing LLMs can understand binary code to a certain extent, thereby improving the efficiency of binary code analysis. Our results highlight the great potential of the LLMs in advancing the field of binary code understanding.
title How Far Have We Gone in Binary Code Understanding Using Large Language Models
topic Software Engineering
Cryptography and Security
url https://arxiv.org/abs/2404.09836