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