MLCRLGMay 6, 2018

Automatic Classification of Object Code Using Machine Learning

arXiv:1805.02146v133 citations
Originality Incremental advance
AI Analysis

This work addresses the need for efficient analysis of compiled code in security and software engineering, though it is incremental as it builds upon existing machine learning techniques for file classification.

The paper tackled the problem of automatically classifying unlabeled compiled object code by target architecture and endianness, achieving high accuracy using byte-value histograms and heuristic-based features on a dataset of over 16,000 samples from 20 architectures.

Recent research has repeatedly shown that machine learning techniques can be applied to either whole files or file fragments to classify them for analysis. We build upon these techniques to show that for samples of un-labeled compiled computer object code, one can apply the same type of analysis to classify important aspects of the code, such as its target architecture and endianess. We show that using simple byte-value histograms we retain enough information about the opcodes within a sample to classify the target architecture with high accuracy, and then discuss heuristic-based features that exploit information within the operands to determine endianess. We introduce a dataset with over 16000 code samples from 20 architectures and experimentally show that by using our features, classifiers can achieve very high accuracy with relatively small sample sizes.

Foundations

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

Your Notes