我希望能够在构建过程的最后阶段调用病毒检查(请不要question why开发机器会感染病毒,这只是一个带括号的方法避免被客户起诉的风险......)。此外,我想选择在机器上安装AV但关闭自动文件系统保护(至少对于构建目录)。
我想要的是使用任何AV系统扫描文件的通用方法。我假设有一个Windows API来执行此操作,因为Windows检测到AV系统的存在,并且Firefox等浏览器会在下载文件时调用病毒扫描。那么他们使用的API是什么?有Microsoft AntiVirus API,但这似乎是Office文档特有的。该方法是否涉及使用WMI? (如果您可以从那里检测AV提供商,那么如何调用它来扫描文件?)
我知道我可以编写脚本来手动调用我知道要安装的AV扫描仪,但作为一项智力练习,我更想知道像Firefox这样的应用程序是如何做到的。
答案 0 :(得分:1)
Firefox使用IAttachmentExecute API。但是,您不希望在构建脚本中使用它,因为它将添加备用流信息,告诉窗口在执行文件时显示恼人的警告窗口。
答案 1 :(得分: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代码,以避免重新发明轮子。