2017-04-24 50 views
0

我正在研究隐藏文件的程序。我用的是如何阻止隐藏的系统文件被看到?

File.SetAttributes()

命令来设置文件属性为隐藏和系统。但由于显示隐藏的文件,文件夹和驱动器选项已设置,因此仍然可以看到它们。

是否可以使用C#设置和取消隐藏受保护的操作系统文件(推荐)选项?

我手动和隐藏和系统属性设置的文件无法看到。

+2

什么。 –

+0

“第3法则:如果一个坏人有无限制的物理访问权限,那不再是你的电脑了。” - 您的用户无限制地访问他的电脑,因此您的C#应用​​程序无法控制它。 –

+0

您可能需要考虑在C#中运行PowerShell脚本。或者,如果这是您的程序正在执行的唯一任务,则仅使用PowerShell。 – coinbird

回答

1

即使您想出如何做到这一点,您的方法也有几个问题。例如:

  • 用户可以手动地更改设置,或
  • 用户可以运行与特定开关的dirls命令和将显示隐藏的文件
  • 另一个方案将能够读取一个文件,即使它被隐藏起来

你要做的是与rootkit /恶意软件的界限。 rootkit的做法是通过运行微过滤器文件系统驱动程序。驱动程序接收到特定的IO调用,并且只要向“隐藏”文件发出IO请求,就会返回“找不到”结果。驱动程序通常会允许来自特定进程(通过pid或证书标识)的调用,以允许读取/写入和其他IO操作。另外,根据您尝试实现的内容,您可以尝试使用容器类文件(请参阅TrueCrypt或其衍生物)或以编程方式加密文件。

0

我建议你利用微软的NTFS或AD,.NET框架或API来管理这个。正如最初的答案所提到的,如果文件试图隐藏,它们是其他可能的方法来显示文件。

考虑使用,

File.SetAttributes(path, FileAttributes.Hidden); 

来源答案从另一个答案:当一个人把它再重新应该发生How to hide file in C#?