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