BinBench: a benchmark for x64 portable operating system interface binary function representations

PeerJ Comput Sci. 2023 Jun 1:9:e1286. doi: 10.7717/peerj-cs.1286. eCollection 2023.

Abstract

In this article we propose the first multi-task benchmark for evaluating the performances of machine learning models that work on low level assembly functions. While the use of multi-task benchmark is a standard in the natural language processing (NLP) field, such practice is unknown in the field of assembly language processing. However, in the latest years there has been a strong push in the use of deep neural networks architectures borrowed from NLP to solve problems on assembly code. A first advantage of having a standard benchmark is the one of making different works comparable without effort of reproducing third part solutions. The second advantage is the one of being able to test the generality of a machine learning model on several tasks. For these reasons, we propose BinBench, a benchmark for binary function models. The benchmark includes various binary analysis tasks, as well as a dataset of binary functions on which tasks should be solved. The dataset is publicly available and it has been evaluated using baseline models.

Keywords: Assembly language; Benchmark; Binary functions; Binary functions representation; Binary similarity; Compiler provenance; Dataset; Neural networks.

Associated data

  • figshare/10.6084/m9.figshare.21546111.v2

Grants and funding

Francesca Console is supported by TIM S.p.A. through the PhD scholarship. This work was supported by project SERICS (PE00000014) under the MUR National Recovery and Resilience Plan funded by the European Union—Next Generation EU. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.