-
03-07-2019 - |
题
我正在尝试构建一种方法来保护某些硬盘分区/ usb驱动器出于安全原因而被访问(保护知识产权)。当我试图访问“锁定的驱动器/ usb”时,我在想。尝试停止并返回类似“驱动器无法访问”的内容。或者其他的东西。这只是一个想法,任何事情都有可能/可能吗?如果是这样,任何指针?
C / C ++
-Thanks
解决方案
您需要编写过滤器驱动程序才能实现目标。您需要将驱动程序放在磁盘驱动程序堆栈中的某个位置,并使IRP_MN_START_DEVICE无法阻止您要阻止的驱动器/分区。
您需要 Windows驱动程序工具包来编写驱动程序。 WDK中有一个过滤器驱动程序示例。这个邮件列表非常有用,如果你将搜索存档,您将找到有关磁盘过滤器驱动程序的大量信息。
关于编写过滤器驱动程序的好文章是这里,我想你需要注册阅读,但如果你想编写驱动程序,你应该在这个网站上注册。
相关的图书清单可以在这里找到。
其他提示
分区问题很简单。只需使用ACL来阻止某些用户访问。
对于驱动器访问,可能在Windows中的某处设置某些设置以禁用它。在更糟糕的情况下,你可以尝试强行删除驱动程序(因此Windows的功能读取驱动器/棒)
对于USB驱动器,您可以加密它们。
在工作中我们使用 Pointsec提供商,它允许您访问驱动器只有你有密码才能在任何机器上使用。
我确信有免费软件加密产品
您也可以加密分区。
(基本上我不确定你为什么要为某些可以通过其他方法充分管理的东西编写一些c / c ++代码)
您需要加密驱动器,其他任何东西都允许攻击者将驱动器连接到另一台机器并提取内容。
您不应该自己实施加密 - 依靠其他人审核的代码要好得多。我建议 TrueCrypt 加密您的硬盘。
然后,您可能希望在应用程序中放置一个钩子,以便在想要访问加密数据时提示输入密码。或者您在机器上安装TrueCrypt,并根据使用数据的精确方式,让用户在想要访问数据时连接驱动器。
请注意。任何涉及内核工作的东西,如果你还没有那个领域的经验,就会有一个以年为单位的开发时间。