C#使文件无法编辑和删除

本文关键字:编辑 删除 文件 | 更新日期: 2023-09-27 18:27:58

有什么方法可以使文件完全不可编辑和不可删除吗?我正在创建一个简单的反病毒程序,我想保护保存在文件中的恶意软件签名。

C#使文件无法编辑和删除

简短的回答是"你不能。"答案很长

您可以通过文件权限来实现它,但如果进程具有足够的权限,则可以更改这些权限。

TMK,实现这种限制的唯一方法是保持进程运行,文件以独占模式打开。不过,这不会阻止像Unlocker这样的应用程序杀死你的主进程或删除块句柄。

不,你不能。如果一个软件运行时有足够的权限,它将能够将它们与您的防病毒软件一起删除。商业防病毒软件也会出现这种情况。

为了至少防止修改,您可以将定义存储为压缩的、签名的和加密的。这样,除非恶意软件能够获得脚本密钥,否则它将无法有意义地修改病毒数据库,而只能删除它。在这两种情况下,你的软件都可以检测到干预并尝试做出反应(但如果恶意软件有足够的特权删除系统文件,可能已经太晚了)

你真的不能这么做,但你可以尝试战胜恶意软件。。。

  1. 保存文件的校验和,以便您知道它是否被篡改
  2. 对文件使用异步加密(与1类似)
  3. 让签名可以通过互联网下载,让你的软件下载这些
  4. 检查文件的上次访问时间

还有很多类似上面四个的技巧,但它们都不是防嘘声的。。。

一个疯狂的想法,我真的不知道如何实现。。。但我想到的是:
您可以创建SATA/IDE驱动程序并使特定文件不可访问
但这又是我那种创造力的疯狂演讲:)

使用C#所能做的最好的事情就是设置文件的权限,这样只有您的服务具有完全访问权限,其他任何人都没有。这并不能保护那些设法获得管理员访问权限的人/物,因为他们总是可以更改权限。

许多反病毒软件为自我保护其文件和服务所做的是安装内核模式驱动程序,以阻止关键文件和进程,因此即使是管理员也无法阻止它们。当然,C#无法创建它们。