目前我正在开发可以保护用户密码的Windows驱动程序,我想在用户激活保护时向用户显示一条消息,表明驱动程序已经开始工作。但是,如果恶意软件可以伪造此消息而实际上驱动程序根本不起作用,则用户空间无法访问此消息。此消息由用户定义,因此我无法在驱动程序中编写它。 我在互联网上搜索了答案,但都失败了。我曾尝试使用bcdedit.exe编辑启动参数,但我不知道如何在驱动程序中获取此消息。谁有好主意?只要用户空间应用程序无法访问该消息,并且此消息来自用户。谢谢!
答案 0 :(得分:0)
(这是一个答案,但请阅读有关威胁模型的脚注)
FltCreateCommunicationPort
。 PFLT_MESSAGE_NOTIFY MessageNotifyCallback
参数是指向消息传递回调函数的指针。FilterSendMessage
将讯息发送给司机MessageNotifyCallback
)中,存储用户选择的消息。小心内存对齐。FilterSendMessage
,这次要检索它发送给驱动程序的字符串。FltCloseCommunicationPort
和其他清理功能。在WDK安装的findstr /s FltCreateCommuncationPort *.c
目录中键入src
。查找任何Microsoft过滤器示例以尝试您的想法,它将帮助您快速启动并运行。完成后将工作代码复制到过滤器。
但是考虑你的线程模型。要么我不明白(很可能;)或者这不值得努力。为什么不检查您的驱动程序是否已安装,正在运行且数字签名是否有效?
也许你可以通过告诉我们用户模式代码如何知道它首先将字符串(要显示的消息)发送给合法的驱动程序来更新你的OP?