Fine-grained compiler identification with sequence-oriented neural modeling

Zhenzhou Tian, Yaqian Huang, Borun Xie, Yanping Chen, Lingwei Chen, Dinghao Wu

Research output: Contribution to journalArticlepeer-review

1 Scopus citations

Abstract

Different compilers and optimization levels can be used to compile the source code. Revealed in reverse from the produced binaries, these compiler details facilitate essential binary analysis tasks, such as malware analysis and software forensics. Most existing approaches adopt a signature matching based or machine learning based strategy to identify the compiler details, showing limits in either the detection accuracy or granularity. In this work, we propose NeuralCI (Neural modeling-based Compiler Identification) to infer these compiler details including compiler family, optimization level and compiler version on individual functions. The basic idea is to formulate sequence-oriented neural networks to process normalized instruction sequences generated using a lightweight function abstraction strategy. To evaluate the performance of NeuralCI, a large dataset consisting of 854,858 unique functions collected from 19 widely used real-world projects is constructed. The experiments show that NeuralCI achieves averagely 98.6% accuracy in identifying the compiler family, 95.3% accuracy in identifying the optimization level, 88.7% accuracy in identifying the compiler version, 94.8% accuracy in identifying the compiler family and optimization level, and 83.0% accuracy in identifying all compiler components simultaneously, outperforming existing function level compiler identification methods in terms of both detection accuracy and comprehensiveness.

Original languageEnglish (US)
Article number9388681
Pages (from-to)49160-49175
Number of pages16
JournalIEEE Access
Volume9
DOIs
StatePublished - 2021

All Science Journal Classification (ASJC) codes

  • Computer Science(all)
  • Materials Science(all)
  • Engineering(all)

Fingerprint

Dive into the research topics of 'Fine-grained compiler identification with sequence-oriented neural modeling'. Together they form a unique fingerprint.

Cite this