4 个版本

0.1.3 2024年3月8日
0.1.2 2022年10月16日
0.1.1 2022年1月19日
0.1.0 2022年1月19日

#330硬件支持

自定义许可

5KB

Rust crates.io docs.rs

kernel-log-rs

Windows 内核驱动器的最小化日志记录器。

用法

#![no_std]

use kernel_log::KernelLogger;

#[no_mangle]
pub extern "system" fn DriverEntry(_: PDRIVER_OBJECT, _: u64) -> NTSTATUS {
    KernelLogger::init(LevelFilter::Info).expect("Failed to initialize logger");

    log::warn!("This is an example message.")
}

lib.rs:

实现了 print!println!dbg! 宏,以便可以在内核中不使用分配器使用它们。

默认情况下,宏以 kernel_ 前缀。如果您想删除前缀,可以启用 std_name 功能。

用法

就像使用标准库中的原始宏一样。

#![no_std]

// ...

kernel_dbg!(2 + 2);
kernel_print!("{} + {} = {}\n", 2, 2, 2 + 2);
kernel_println!("{} + {} = {}", 2, 2, 2 + 2);

功能

  • std_name:允许您使用不带 kernel_ 前缀的宏。
  • format:使用 format! 宏而不是 core::fmt::Write 特性来将传入的数据转换为字符串。此crate为使用 DbgPrint 函数进行日志记录提供了简单的包装。日志不会包含在最终的二进制文件中,这有助于加固逆向工程。

依赖关系

~0.7–1MB
~24K SLoC