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

时间:2013-08-17 16:23:21

标签: c#

有没有办法让文件完全不可编辑且不可删除?我正在创建简单的反病毒程序,我想保护保存在文件中的恶意软件签名。

4 个答案:

答案 0 :(得分:5)

简短的回答是'你做不到'。答案如下。 =)

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

TMK,实现此类限制的唯一方法是保持进程运行with the file open in exclusive mode。但这并不会阻止像Unlocker这样的应用程序杀死主进程或删除阻止句柄。

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

你真的不能这样做,但你可以尝试超越恶意软件......

  1. 保存文件的校验和,以便知道它是否被篡改。
  2. 对文件使用异步加密(与1类似。)
  3. 通过互联网访问下载签名,并让您的软件下载......
  4. 检查文件的最后访问时间。
  5. 还有更多的技巧,如上面的四个,但它们都不是boolet证明...

    一个疯狂的想法,我真的不知道如何实现......但我想到的是:
    您可以创建SATA / IDE驱动程序并使特定文件无法访问...
    但再次这就是我的创造力疯狂的谈话:)

答案 3 :(得分:1)

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

许多防病毒软件为自我保护文件和服务所做的是安装内核模式驱动程序来阻止关键文件和进程,因此管理员甚至都不能阻止它们。当然C#无法创建它们。