Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从操作系统中隐藏USB中的文件?_.net_Vb.net_Usb_Low Level - Fatal编程技术网

.net 从操作系统中隐藏USB中的文件?

.net 从操作系统中隐藏USB中的文件?,.net,vb.net,usb,low-level,.net,Vb.net,Usb,Low Level,有没有一种方法可以将数据存储在USB文件中,使操作系统无法用标准方法读取数据?我在考虑使用一个不常见的文件系统,但是我可能必须自己实现IO,这听起来像是一项巨大的工作。 另一个想法是以低级方式访问磁盘扇区,并以不兼容的方式存储数据?但我不知道从哪里开始。 作为记录,我使用的是VB.NET 谢谢, 约翰 编辑:关于您提出的有效安全问题:我同意,但请假设,在我的项目范围内,我所需要做的只是阻碍普通和稍微高级的用户。不是专家。感谢您提出安全问题,但在这个特殊情况下可以放心地忽略它。基本上,您所要求的几

有没有一种方法可以将数据存储在USB文件中,使操作系统无法用标准方法读取数据?我在考虑使用一个不常见的文件系统,但是我可能必须自己实现
IO
,这听起来像是一项巨大的工作。 另一个想法是以低级方式访问磁盘扇区,并以不兼容的方式存储数据?但我不知道从哪里开始。 作为记录,我使用的是VB.NET

谢谢,

约翰


编辑:关于您提出的有效安全问题:我同意,但请假设,在我的项目范围内,我所需要做的只是阻碍普通和稍微高级的用户。不是专家。感谢您提出安全问题,但在这个特殊情况下可以放心地忽略它。

基本上,您所要求的几乎是一个问题。我认为这不是你想走的路

您可以重新分区驱动器,使其具有第二个分区,您可以对其执行原始I/O,但这并不能提供任何真正的安全性。(这会使您的软件变得不必要的复杂。)那么,为什么不简单地将它们标记为只读+隐藏+系统,并通过其他方式添加真正的安全性呢

正如其他人已经指出的那样,尝试这样做会有相当大的安全问题。需要考虑的事项:

  • 重播攻击(有人一个字节一个字节地复制驱动器-顺便说一句,这很容易做到)
  • 有人找到文件并对其进行修改(应该使用只有您的程序知道的第三方数字签名对其进行验证,并且您的程序必须以某种方式保护其私钥)

只是好奇,你想用这个“隐藏”文件实现什么?@SimonBesner:一个基于usb驱动器的原型可重新加载的“信用”系统。如果你可以隐藏文件,其他人可以找到它。@Jim Mischel:是的,但这个项目的范围不是实现绝对安全性。你考虑过使用TrueCrypt吗?它可以将一个卷放入一个卷中,这样当您解锁一个卷时,内部卷仍然是安全的。请不要关注安全问题,这只是为了妨碍使用操作系统功能进行琐碎的复制/粘贴。在这件事上,强大的安全性不是一个问题。我对第二个分区的想法很感兴趣,我可以在这个分区上进行原始I/O。你能给我指一些关于如何做的资源吗(我不知道:O)?关于“只读+隐藏+系统”,如果我不这样做,这将是我的选择。但是,由于它很容易被一个操作系统命令逆转,我想避免它。@johnjohn,它在Windows上似乎不是很简单,但我找到了一些线索和建议。基本思想是,您应该能够为您关心的分区打开一个虚拟设备文件,并像文件一样读/写它。显然,您必须非常小心地执行此操作,因为您必须以管理员身份运行,如果您获取了错误的设备文件,则很可能只是将一个真正的文件系统搞砸了。;-)@如果任何操作系统可以以任何方式访问您的USB,您可以通过一个或几个命令转储它所代表的内存空间。如果用户足够先进,能够找到隐藏的+系统文件,我想他们中的很多人也足够精通从USB转储字节