我现在正在分析设备驱动程序二进制文件。我编写了如下代码:
CreateFileA("\\\\.\\device_name", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
我从CreateFileA()返回的内容是INVALID_HANDLE_VALUE(0xFFFFFFFF),没有UAC。当我使用UAC运行相同的代码时,它运行良好,它给了我有效的句柄。
我听说过访问设备驱动程序的权限取决于IoCreateDevice()的设备类型参数。我检查了它,但驱动程序类型是FILE_DEVICE_UNKNOWN(0x22),它不仅可以由管理员访问,也可以由其他用户访问。但我失败了。
因此我感到沮丧。我错了吗?为什么我在CreateFile()上失败了?有谁可以帮助我?感谢阅读。祝你有个美好的一天。