2010-05-19 53 views
1

我希望能够调用病毒检查作为构建过程的最后阶段(请不要question why开发机器会得到病毒,它只是一个腰带和大括号的方法,以避免被客户起诉的风险......)。另外我想选择在机器上安装AV,但关闭自动文件系统保护功能(至少对于构建目录)。从构建脚本对文件执行病毒检查

我想要的是使用任何AV系统就地扫描文件的通用方法。我假设有一个Windows API可以执行此操作,因为Windows检测到AV系统的存在,并且只要文件被下载,Firefox等浏览器就会调用病毒扫描。那么他们使用的API是什么?有微软AntiVirus API,但似乎是专门针对Office文档。该方法是否涉及使用WMI? (如果您可以从那里检测到AV提供商,那么您如何调用它来扫描文件?)

我知道我可以编写脚本来手动调用我知道要安装的AV扫描仪,但作为一种智力练习,我更感兴趣知道像Firefox这样的应用程序是如何做到这一点的。

回答

1

那么,你可能要采取直接在Firefox的源代码,看看nsDownloadScanner系统:

至于说通过对文件中的注释:

Download scanner attempts to make use of one of two different 
virus scanning interfaces available on Windows - IOfficeAntiVirus 
(Windows 95/NT 4 and IE 5) and IAttachmentExecute (XPSP2 and up). 
The latter interface supports calling IOfficeAntiVirus internally, 
while also adding support for XPSP2+ ADS forks which define security 
related prompting on downloaded content. 

文档这些接口可以在这里找到:

如果你的软件 是开源 符合的MPL许可(感谢,@MSalters),你也可以直接使用Firefox的代码,以避免重蹈覆辙。

+0

FireFox是MPL许可的分销许可证。这意味着只要您不分发它,您也可以将其用于内部封闭源代码软件。构建系统通常具有资格 - 因为它通常不会分发,因此没有分发许可证,可以打开或关闭。 – MSalters 2010-05-19 09:04:52

+0

谢谢,这就是我一直在寻找的。 – 2010-05-19 09:40:26

+0

谢谢@MSalters,我编辑了我的答案来解决这个问题。我并不完全知道所有这些许可证的东西。 :) @the_mandrill,不客气! – Tyn 2010-05-19 13:14:11

1

Firefox使用IAttachmentExecute API。但是,您不想在构建脚本中使用它,因为它会添加备用流信息,告诉窗口在执行文件时显示恼人的警告窗口。