中文

未知指令集架构二进制程序中字节序与指令宽度特征的发现

密码学与安全 2024-10-30 v1

摘要

我们研究了对来自未知指令集架构(ISA)的二进制程序进行逆向工程(RE)的简化问题。我们关注开始逆向工程过程的两个基本 ISA 特征:字节序的识别,以及指令宽度是固定的还是可变的。对于具有固定指令宽度的 ISA,我们还提出了估计宽度的方法。除了推进软件逆向工程的研究外,我们的工作也可以被视为硬件逆向工程的第一步,因为字节序和指令格式描述了底层 ISA 的内在特征。我们详细介绍了特征工程的工作,并使用多种机器学习模型在两个架构数据集上进行了实验,采用留一组交叉验证(Leave-One-Group-Out-Cross-Validation)来模拟模型训练期间被测 ISA 未知的情况。我们使用基于二元组的特征进行字节序检测,并使用信号处理应用中常用的自相关函数来区分固定和可变指令宽度。实验中使用了来自机器学习库 scikit-learn 的一系列分类器来研究这些特征。初步结果令人鼓舞,字节序检测的准确率为 99.4%,固定与可变指令宽度区分的准确率为 86.0%,固定指令宽度检测的准确率为 88.0%。

关键词

引用

@article{arxiv.2410.21558,
  title  = {Discovery of Endianness and Instruction Size Characteristics in Binary Programs from Unknown Instruction Set Architectures},
  author = {Joachim Andreassen and Donn Morrison},
  journal= {arXiv preprint arXiv:2410.21558},
  year   = {2024}
}