为Windows创建安全应用程序

时间:2011-12-24 22:30:23

标签: .net windows security

首先,让我说我是一名中级.NET开发人员,所以低级别是不可能的。

基本上我只想写一个程序来监视系统的变化并记录/报告这些变化。它不需要阻止任何更改,我不相信即使我想要考虑它所用的语言我也不会。我只是不确定我需要检查的是什么。

这些想法浮现在脑海中:

  • 检查并存储系统文件的MD5总和以及链接到的所有内容 在注册表中启动,如果它们与受信任的MD5不匹配则 使用VirusTotal或类似服务进行扫描
  • 检查可信MD5总和的运行进程,上传未知 VirusTotal
  • 监控服务
  • 监听侦听端口

当然,检测ring3之外的任何内容都是不可能的。

要检查的其他任何想法?这是可行的还是我应该坚持使用流行的反恶意软件?

编辑:想到的另一个想法是检查其路径的运行流程并报告一个不合适的可执行文件。也许正则表达式扫描随机文件名。还可能验证正在运行的进程的可执行标头,并报告无效的标头信息,因为我听说绑定文件会使标头的一部分(PE?)无效。验证文件的证书也是如此,虽然我之前看到过带有通过UAC的伪造证书的恶意软件。

更多研究的时间,谢谢大家!

2 个答案:

答案 0 :(得分:2)

  

要检查的其他任何想法?这是可行的还是我应该   坚持使用流行的反恶意软件?

除非您出于学习目的这样做,否则可能。出于学习目的,根本不是一个糟糕的运动。换句话说,我不会单独与现有产品竞争,也不会仅使用自己开发的代码来保护我自己的机器;即使它经过了充分的测试,你也必须跟上最新的问题和利用。

我花了一些时间对一家初创公司对这样的产品进行尽职调查。他们取得了类似于你所寻求的东西,但性能严重下降。即使对于主流产品,性能也是一个问题。

答案 1 :(得分:0)

如果您使用的是Windows计算机,我认为使用恶意软件扫描工具会更好。除非您使用Microsoft Antivirus API,否则我认为您很容易遇到文件锁定问题。

但是如果你想监视服务和监听端口,可以使用内置的框架类来实现。