【问题标题】:How can I stop my hidden system files from being seen?如何阻止我的隐藏系统文件被看到?
【发布时间】:2017-04-25 05:47:17
【问题描述】:

我正在开发一个隐藏文件的程序。我用的

File.SetAttributes()

命令将文件属性设置为隐藏和系统。但是,由于设置了“显示隐藏文件、文件夹和驱动器”选项,它们仍然可见。

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

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

【问题讨论】:

  • 当这个人再次打开它时会发生什么。
  • “法则 3:如果坏人可以不受限制地物理访问您的计算机,那么它就不再是您的计算机了。” - 您的用户可以不受限制地访问他的 PC,因此您的 C# 应用程序无法控制它。
  • 您可能希望研究在 C# 中运行 PowerShell 脚本。或者,如果这是您的程序正在执行的唯一任务,则只需单独使用 PowerShell。
  • 你的程序除了隐藏文件还有什么用途?

标签: c# security


【解决方案1】:

即使您知道如何做到这一点,您的方法也存在一些问题。例如:

  • 用户可以手动更改设置,或者
  • 用户可以运行带有特定开关的dir 或ls 命令,这将显示隐藏文件
  • 即使文件被隐藏,其他程序也可以读取文件

您正在尝试做的是与 rootkit/恶意软件交界。 rootkit 执行此操作的方式是运行微过滤器文件系统驱动程序。驱动程序接收特定的 IO 调用,如果对“隐藏”文件发出 IO 请求,则简单地返回“未找到”结果。驱动程序通常会允许来自特定进程的调用(由 pid 或证书标识)以允许读/写和其他 IO 操作

或者,根据您想要实现的目标,您可以尝试类似容器的文件(请参阅 TrueCrypt 或其衍生产品)或以编程方式加密文件。

【讨论】:

    【解决方案2】:

    我建议您使用 Microsoft 的 NTFS 或 AD、.NET 框架或 API 来管理它。正如原始答案所提到的,如果文件试图被隐藏,它们是其他可能的方法来显示文件。

    考虑使用,

    File.SetAttributes(path, FileAttributes.Hidden);
    

    另一个答案的答案来源:How to hide file in C#?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      相关资源
      最近更新 更多