0

我正在考虑一种有效的方法来为我的防病毒应用程序添加隔离功能:

  • 将文件复制到指定目录并将其扩展名更改为无(*.)。
  • 将文件的二进制代码保存在 XML 数据库中。

哪种方式更好?

但是,我不知道一旦用户想要恢复文件,我将如何重新编译二进制代码。

4

2 回答 2

2

一种方法是使用加密引擎加密二进制文件并将其移动到隔离文件夹中,您可以创建一个随机密码并使用该密码加密文件并将其存储在某处(该密码也可以使用主加密钥匙)。这可能是最简单的隔离方式。要取消隔离,只需编写与隔离代码完全相反的内容。将文件枚举成一个列表并将其过滤掉,然后当用户单击一个项目并按下取消隔离时,它会以文件路径为变量调用取消隔离函数。

于 2011-11-14T20:37:36.703 回答
1

如果我必须这样做(再说一次,根据我的评论,我一开始不想处于这种情况),我会使用一个进程内数据库引擎,该引擎支持加密和大格式二进制数据. 我认为 sql compact 或 sqlite 都适合这个。

我不会使用 xml,因为它是纯文本并且可以轻松提取二进制数据,而且我不会只更改扩展名,因为该文件仍然可以轻松执行。两者都不是隔离区。

请注意,重命名选项可能是迄今为止我所看到的讨论中最“有效”的选项,但是在处理安全软件时,正确性应该始终是您对效率的首要关注。有时您可能会为了性能而牺牲正确性(3D 游戏渲染软件一直这样做,效果很好),但安全软件不在此类别中。

您可以做的是稍后进行优化。例如,防病毒引擎使用启发式(仅在大多数情况下适用的经验法则)来提高他们的软件速度,他们这样做的方式有利于误报,然后必须更仔细地检查而不是可能遗漏威胁。这只是因为更仔细地检查每个项目的代码是首先编写和经过实战测试的。

于 2011-02-27T20:35:42.133 回答