ath*_*hom 18 c# antivirus windows-server-2008 windows-server-2008-r2
在搜索答案时,我已经多次看到类似以下的代码示例:
using System;
using System.Text;
using System.Management;
namespace ConsoleApplication1
{
class Program
{
public static bool AntivirusInstalled()
{
string wmipathstr = @"\\" + Environment.MachineName + @"\root\SecurityCenter";
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmipathstr, "SELECT * FROM AntivirusProduct");
ManagementObjectCollection instances = searcher.Get();
return instances.Count > 0;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
return false;
}
public static void Main(string[] args)
{
bool returnCode = AntivirusInstalled();
Console.WriteLine("Antivirus Installed " + returnCode.ToString());
Console.WriteLine();
Console.Read();
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎Windows Server 2008没有SecurityCenter或SecurityCenter2命名空间,所以Invalid namespace在尝试这种方法时会出现异常.
有谁知道确定Windows Server 2008上是否有防病毒软件运行的方法?任何帮助表示赞赏!
使用EICAR测试病毒.
它不仅适用于地球上的每一种反病毒,它还会告诉你反病毒是否活跃!
如果您的防病毒处于活动状态,您可能会发现很难下载测试文件,因此您可能希望使用此字符串:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Run Code Online (Sandbox Code Playgroud)
请记住,您可能希望在应用程序上保留编码的字符串,然后在将其写入磁盘之前对其进行解码.否则,您的应用可能会被检测为病毒:)
在EICAR网站上,他们说:
任何支持EICAR测试文件的防病毒产品都应该在任何文件中检测到它,前提是该文件以下列68个字符开头,并且长度正好为68个字节
但是,我不认为AV开发人员已经阅读了规范,所以最好只保留字符串编码.事实上,我只是尝试将字符串保存在桌面上的.txt文件中,其中包含一些其他字符,Windows Defender开始尖叫.
我前一段时间为一个客户遇到了这个问题,我最终对本地系统驱动程序和进程执行字典搜索,寻找已知的防病毒签名模式(例如文件夹名称、进程名称等......)不是 100% 确定,因为有人会在你不知道的情况下下载一个全新的防病毒软件,但除此之外,它非常有效......
| 归档时间: |
|
| 查看次数: |
6256 次 |
| 最近记录: |