8个版本
| 0.3.0 | 2022年11月17日 |
|---|---|
| 0.2.0 | 2022年10月29日 |
| 0.1.7 | 2022年10月3日 |
| 0.1.5 | 2022年9月29日 |
1648 在 算法 中排名
每月 126 次下载
在 2 crates 中使用
37KB
387 行
AOBscan 📝
AOBscan是一个用于多线程AOB内存扫描的库,旨在用于恶意软件分析和逆向工程。
此库实现了在数据切片或对象文件部分中扫描模式的有用功能(允许进行极快的扫描)。
功能
- 单线程和多线程扫描
- 使用回调函数选择匹配项
- IDA样式模式:
48 8b ? ? ? 48 8c ?? ?? ?? ?? - 代码样式签名/掩码:(
\x48\x8b\x00\x00\x00,..???) - 十六进制字符串:
488b?????? - 在对象文件部分中扫描模式 (功能:object-scan)
用法
将此添加到您的 Cargo.toml
[dependencies]
aobscan = "0.3"
示例: 使用所有可用线程在
some.bin中扫描 48 8B ? ? ?,并在第一次匹配时停止。
fn main() {
let data = include_bytes!("some_file.bin");
let result = aobscan::Pattern::from_ida_style("48 8B ? ? ? ?")
.unwrap()
.with_all_threads()
.build()
.scan(data, |offset| {
println!("Found pattern at offset: 0x{:x}", offset);
false
});
}
有关真实世界的示例,请查看AOBscan CLI 配对项目。
基准测试
benchmark 示例的结果如下
| CPU | MT 平均 | ST 平均 | MT 峰值 |
|---|---|---|---|
| Apple M1 Pro (10C) | 10.17 GB/s | 1.42 GB/s | 12.41 GB/s |
依赖关系
~28–540KB
~11K SLoC