C# Antiviren Abfrage

Ob nun aus purem Interesse oder aus Sicherheitsbedenken, es sind viele Gründe annehmbar ein System auf installierte Antivirenprogramme zu prüfen und hier sehen wir uns an, wie:

namespace diagConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementObjectSearcher diagObject =
                new ManagementObjectSearcher("root\\SecurityCenter2", "SELECT * FROM " + "AntiVirusProduct");

            string Result = "";

            foreach (ManagementObject queryObj in diagObject.Get())
            {
                Result += "next Antivirus:" + Environment.NewLine;
                foreach (PropertyData propertyData in queryObj.Properties)
                {
                    Result += propertyData.Name.ToString() + ":" + propertyData.Value.ToString() + Environment.NewLine;
                }
            }
            Console.WriteLine(Result);
            Console.ReadLine();
        }
    }
}

Für jedes installierte Antivirenprogramm liefert dieser Code ein Objekt zurück.

image


Um den Eintrag productState deuten zu können, muss man ihn in die entsprechende Hexadezimalzahl umwandeln. Das bedeutet für den productState 266240 lautet die entsprechende Umwandlung 041000.

Der erste Byte lässt sich wie folgt deuten:

  WSC_SECURITY_PROVIDER_FIREWALL               = 1,
  WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS    = 2,
  WSC_SECURITY_PROVIDER_ANTIVIRUS              = 4,
  WSC_SECURITY_PROVIDER_ANTISPYWARE            = 8,
  WSC_SECURITY_PROVIDER_INTERNET_SETTINGS      = 16,
  WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL   = 32,
  WSC_SECURITY_PROVIDER_SERVICE                = 64,
  WSC_SECURITY_PROVIDER_NONE                   = 0,

Der zweite Byte lässt sich so interpretieren:


  SCANNER_UNKNOWN = 1,
  SCANNER_RUNNING = 16,

Und schließlich der dritte Byte:

00: up-to-date
10: not up-to-date

Daraus geht für das obere Beispiel hervor: Antivirus + Running + up-to-date.
Bei Interesse ist oben auch noch ein zweiter productState zum Üben.

Kommentare sind geschlossen