You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

内核驱动创建文件异常:OSRLOADER成功CreateService服务加载失败

问题分析与解决方案

这种情况我之前也碰到过,主要是几个容易忽略的点导致的,咱们一步步拆解:

1. 驱动签名验证问题(最常见原因)

OSRLOADER这类测试工具通常会在宽松的签名环境下使用,你大概率已经通过bcdedit /set testsigning on开启了测试签名模式,或者工具本身做了签名绕过。但当你通过系统服务加载驱动时,Windows会严格执行驱动签名验证:

  • 如果你的驱动没有经过微软官方签名,也没有安装测试签名证书,系统会直接拒绝加载驱动,导致StartService调用失败,驱动根本没运行,自然不会创建文件。
  • 你可以先给StartService加上返回值检查,确认是否启动失败:
    if (!StartServiceA(schService, 0, 0)) {
        printf("\nStart Service fails.\nError_Code: %d", GetLastError());
        return -1;
    }
    
    如果错误码是ERROR_IN_WOW64或者ERROR_DRIVER_BLOCKED,基本就是签名的问题。

2. 驱动代码里的错误判断逻辑完全反了

看你的驱动代码:

if (!status) {
    DbgPrint("Error While Creating file.......");
}

NTSTATUS类型中,STATUS_SUCCESS的值是0,也就是说当文件创建成功时,这个条件会成立,反而打印错误信息;而如果创建失败(status非0),反而不会输出任何日志,这会严重误导你判断驱动是否真的执行了文件创建逻辑。

正确的判断应该用NT_SUCCESS()宏,它能正确识别所有成功的NTSTATUS值:

if (!NT_SUCCESS(status)) {
    DbgPrint("Error While Creating file....... Status: 0x%X", status);
} else {
    DbgPrint("File created successfully!");
}

3. 服务启动时的权限与路径细节

虽然你的驱动创建的是C:\test.txt,但还是要确认两个点:

  • 服务默认以Local System账户运行,这个账户理论上拥有C盘根目录的写入权限,但如果你的系统开启了严格的UAC或者文件夹权限被手动修改,可能会导致创建失败。可以先尝试把路径改成C:\Windows\Temp\test.txt,这个系统临时目录的权限更宽松。
  • 你的服务指向的驱动路径C:\\Users\\abc\\Desktop\\CreateFile.sys,Local System账户默认可以访问用户桌面目录,但如果是多用户环境或者桌面目录权限被修改,可能会导致服务无法读取驱动文件。建议把驱动文件放到系统目录(比如C:\Windows\System32\drivers\),再修改服务的路径参数。

4. 驱动生命周期的小细节

如果你的驱动没有设置卸载函数,虽然不会影响DriverEntry的执行,但系统会认为驱动无法正常卸载,可能在某些场景下出现异常。建议加上卸载函数,确保驱动生命周期完整:

VOID DriverUnload(PDRIVER_OBJECT DriverObject) {
    DbgPrint("Driver unloaded successfully!");
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) {
    DriverObject->DriverUnload = DriverUnload;
    // 剩下的文件创建代码...
}

快速排查步骤

  1. 先给服务启动代码加上StartService的错误检查,确认驱动是否真的被加载。
  2. 用DebugView工具抓取内核调试信息,看驱动的DbgPrint输出,确认文件创建逻辑是否执行,以及返回的status值是什么。
  3. 如果是签名问题,要么开启测试签名模式(执行bcdedit /set testsigning on后重启系统),要么给驱动申请测试签名证书并安装。
  4. 优先修正驱动里的错误判断逻辑,避免误导自己的排查方向。

内容的提问来源于stack exchange,提问作者Raafat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:08:11