2个版本
使用旧的Rust 2015
0.1.1 | 2018年3月23日 |
---|---|
0.1.0 | 2018年3月23日 |
#1664 in 解析器实现
135KB
814 行
libprefetch
一个用于解析和读取微软Prefetch文件的法医学库。
libprefetch
完全支持以下版本的Windows
- Windows 2003
- Windows XP
- Windows Vista
- Windows 7
- Windows 8/8.1
libprefetch
对Windows 10的**部分**支持。
功能
- 解析器和验证器
- 自动检测Windows版本
- 提供最后执行时间和执行计数器
- 提供有关加载的文件(如dll等)的度量信息(如果可用),例如
- 文件名
- 开始时间
- 持续时间
- 平均持续时间
- NTFS MFT条目
- NTFS序列号
- 提供跟踪链(Windows 10不可用)
- 提供有关卷的所有信息
- 设备路径
- 创建时间
- 序列号
- 目录列表
此库很快将在全球法医学计算库中使用。
用法
将此添加到您的Cargo.toml
[dependencies]
libprefetch = "0.1.1"
并将此添加到您的crate根目录
extern crate libprefetch;
示例
use libprefetch::Prefetch;
let file = std::fs::File::open("assets/WUAUCLT.EXE-399A8E72.pf").unwrap();
let prefetch = Prefetch::new(file).unwrap();
// Prints some information
println!("Executable {} launched {} times. The last time was: {}",
prefetch.name(),
prefetch.execution_counter(),
prefetch.last_execution_time() // TODO: format the FILETIME here
);
// Iterates over all loaded DLL etc for the prefetch file
println!(" ===== File metrics ===== ");
for metric in prefetch.metrics().unwrap() {
println!("#{}: {}", metric.id(), metric.filename());
println!(" start time: {}", metric.start_time().unwrap());
println!(" duration: {}", metric.duration().unwrap());
println!(" ------------------------------- ");
}
// Iterates over the volumes
println!(" ===== Volumes ===== ");
for volume in prefetch.volumes().unwrap() {
println!("Volume #{}:", volume.id());
println!(" Path: {}", volume.device_path());
println!(" Creation time: {}", volume.creation_time());
println!(" Serial number: {}", volume.serial_number());
println!(" Directories: ");
for directory in volume.directories().unwrap() {
println!(" {}", directory);
}
}
版本
版本说明可在RELEASES.md中找到。
兼容性
libprefetch
似乎适用于Rust 1.9及以上版本。