确定一个二进制文件所使用的 CPU 架构
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/trou/cpu_rec_rs
cpu_rec_rs
相关技术点
- 二进制文件的CPU架构识别
- 基于统计学的方法
- 使用滑动窗口进行特征提取
- Rust语言实现
项目用途
cpu_rec_rs 是一个用于识别二进制文件所使用CPU架构的工具,它使用基于统计学的方法来识别二进制文件的CPU架构,主要包括以下步骤:
- 提取二进制文件的特征
- 根据预先构建的语料库,将特征与所有已知CPU架构进行比较
- 输出与特征最匹配的CPU架构
该工具可以帮助安全研究人员快速确定二进制文件所使用的CPU架构,从而更好地进行后续分析。但是,由于该方法是基于统计学的,因此存在误识别的风险,需要与其他来源进行交叉验证。
cpu_rec_rs
该项目用于确定一个二进制文件所使用的CPU架构。
示例:
$ cpu_rec_rs /bin/bash /usr/lib/firmware/rtlwifi/rtl8821aefw*
Loading corpus from cpu_rec_corpus/*.corpus
----------------------------------------------------------------------------------------
File | Range | Detected Architecture
----------------------------------------------------------------------------------------
/bin/bash | Whole file | X86-64
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x3200-0x4400 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x4600-0x5000 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x6000-0x6600 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x6600-0x6c00 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw.bin | Whole file | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_wowlan.bin | Whole file | 8051
----------------------------------------------
注意:该项目基于统计方法,因此误判的可能性是存在的。您应该与其他来源进行交叉验证,并使用反汇编器验证结果。
特别是,较小的文件更容易出现误判,以及更小的滑动窗口。常见的误判包括:
xmos_xs2aNDS32
关于
cpu_rec_rs 是原始项目 cpu_rec 的 Rust 重新实现。为什么要重新实现它?
- 性能
- 代码简化
- Rust 实践
原始的 cpu_rec 包含了许多用于实验和更新语料库的代码。如果您想尝试各种预测设置,请使用 cpu_rec。它还包含文档和与其理论相关的链接(SSTIC 演示文稿)。
标签:工具分享