9 个版本

0.4.5 2023年5月8日
0.4.4 2022年11月18日
0.4.3 2022年2月8日
0.3.0 2021年12月24日
0.1.0 2021年10月20日

#1781 in 解析器实现


mft2bodyfile 中使用

自定义许可协议

36KB
432

usnjrnl

解析 Windows $UsnJrnl 文件

此crate包含一个库和一个二进制文件。如果您只想在crate中使用库,请在您的 Cargo.toml 中使用 default-features=false

[dependencies]
usnjrnl = {version="0.3.0", default-features=false }

安装

cargo install usnjrnl

使用

usnjrnl_dump 二进制文件

USAGE:
    usnjrnl_dump [FLAGS] <USNJRNL_FILE>

FLAGS:
    -b, --bodyfile    output as bodyfile instead of JSON
    -h, --help        Prints help information
    -V, --version     Prints version information

ARGS:
    <USNJRNL_FILE>    path to $UsnJrnl:$J file (file ending with .gz will be treated as being gzipped)

我建议始终将 MFT 条目号与真实 $MFT 文件中的条目相关联。这可以通过 https://github.com/janstarke/mft2bodyfile 自动完成。

usnjrnl

use usnjrnl::{UsnJrnlReader, CommonUsnRecord, UsnRecordData};

let reader = UsnJrnlReader::from("$UsnJrnl:$J")?;
for entry in reader.into_iter() {
    match entry {
        Ok(e) => {
            println!("{}: {}",
                e.data.filename(),
                e.data.reasons();
        }
        Err(why) => {
            log::error!("{}", why);
        }
    }
}

依赖项

~11–22MB
~278K SLoC