如何通过编程测试文件是否存在病毒?

6
我想编写程序来检测文件是否有病毒。我知道这个帖子,但是我认为它没有得到令人满意的答案,但我不是在寻找API。任何一种解决方案使其能够测试文件都可以接受。当然,API可能是最好的解决方案(我在Windows平台上使用.net),但也许可以将文件放入文件夹中,然后检查是否仍然可以打开它或者是否已经被防病毒软件隔离。是否有人遇到过类似的情况?
7个回答

7
假设您希望与系统中已有的防病毒软件集成,而不是捆绑自己的软件,您应该查看Firefox 3的做法。

错误103487和408153-使用Windows“IOfficeAntiVirus”和“IAttachmentExecute”API,在Firefox下载可执行文件时通知防病毒软件。

(当然,如果您希望捆绑自己的软件,请查看ClamAV / ClamWin,但是这样您必须处理更新等问题,并且您应该先检查目标系统上是否有完全更新的解决方案以表示礼貌)。

5

Windows?没问题。看看ClamWin。它是基于ClamAV构建的。


1

平台?

大多数Windows防病毒软件提供外壳集成(在资源管理器中右键单击文件以扫描该文件),这将意味着运行可执行文件、DDE或COM。所有这些都提供了另一个程序调用相同机制的入口点。


1

请查看ClamAV

Clam AntiVirus是一个开源(GPL)的反病毒工具包,专为邮件网关上的电子邮件扫描而设计。


很遗憾,我正在运行Windows。 - Brann
@Brann-即使如此,您仍然可以解剖操作系统应用程序并查看其工作原理。 - John MacIntyre
1
@Brann:我不明白问题在哪里;也有Windows版本。如果没有,你可以获取源代码。 - Aaron Digulla

1
也许您可以使用这个 Web 服务,假设文件大小不超过1MB:

http://www.kaspersky.com/scanforvirus

如果您在计算机上发现了可疑文件,或者怀疑从互联网下载的程序可能是恶意的,您可以在此处检查这些文件。请指定要检查的文件;它将自动从您的计算机上传到专用服务器,在那里将使用卡巴斯基杀毒软件进行扫描。多个独立测试和出版物都确认该解决方案具有异常的检测率。每三个小时更新一次,确保即使是最新的病毒也可以被检测到。一次只能检查一个最大为1 MB的文件。如果文件太大,则会显示带有错误消息的窗口。在此页面顶部的窗口中输入文件名,或使用“浏览”查找文件。然后单击“提交”。

1

你可以使用调试器或反汇编器


我宁愿重复使用现有解决方案,而不是在这里重新发明轮子! - Brann

0

这真的取决于你要使用哪个杀毒程序。阅读所选择解决方案的文档,你可能会发现一个命令行界面或其他 API 可以调用。没有跨所有杀毒软件的“通用”方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接