Пример #1
0
        public List <SecurityProductData> GetASProducts()
        {
            List <SecurityProductData> List_Data = new List <SecurityProductData>();

            try
            {
                int m_version = System.Environment.OSVersion.Version.Major;

                string security_center = "";
                //string system_name = @"\\" + Environment.MachineName + @"\";

                if (m_version > 5)
                {
                    security_center = @"root\SecurityCenter2";
                }
                else
                {
                    security_center = @"root\SecurityCenter";
                }

                using (ManagementObjectSearcher as_searcher = new ManagementObjectSearcher(security_center, "SELECT * FROM AntiSpywareProduct"))
                {
                    using (ManagementObjectCollection data = as_searcher.Get())
                    {
                        foreach (ManagementObject managementobject in data)
                        {
                            SecurityProductData security_software_data = new SecurityProductData();

                            security_software_data.name = (string)managementobject["displayName"];
                            security_software_data.path = (string)managementobject["pathToSignedProductExe"];

                            if (m_version > 5)
                            {
                                security_software_data.state32 = (UInt32)managementobject["productState"];

                                string hex_value = Convert.ToInt32(security_software_data.state32).ToString("X6");

                                if (hex_value.Substring(2, 2) == "10" || hex_value.Substring(2, 2) == "11")
                                {
                                    security_software_data.enabled = true;
                                }
                                else if (hex_value.Substring(2, 2) == "00" || hex_value.Substring(2, 2) == "01")
                                {
                                    security_software_data.enabled = false;
                                }

                                if (hex_value.Substring(4, 2) == "00")
                                {
                                    security_software_data.updated = true;
                                }
                                else if (hex_value.Substring(4, 2) == "10")
                                {
                                    security_software_data.updated = false;
                                }
                            }
                            else
                            {
                                security_software_data.updated = (bool)managementobject["productUptoDate"];
                                security_software_data.enabled = (bool)managementobject["productEnabled"];
                                security_software_data.version = (string)(managementobject["versionNumber"]);
                                security_software_data.state8  = (byte)managementobject["productState"];
                            }

                            List_Data.Add(security_software_data);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                LogWriter.Exception("Something went wrong parsing WMI for security software.", Ex);
            }

            return(List_Data);
        }
Пример #2
0
        public List <SecurityProductData> GetFWProducts()
        {
            List <SecurityProductData> List_Data = new List <SecurityProductData>();

            try
            {
                SecurityProductData fw_data = new SecurityProductData();
                fw_data.name = "Windows Firewall";
                fw_data.path = @"%SystemRoot%\System32\firewall.cpl";

                // REQUIRES using NetFwTypeLib;
                Type      objectType = Type.GetTypeFromCLSID(new Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}"));
                INetFwMgr inetfwmgr  = (INetFwMgr)Activator.CreateInstance(objectType);
                fw_data.enabled = inetfwmgr.LocalPolicy.CurrentProfile.FirewallEnabled;

                // REQUIRES .net 4.0;
                //Type FWManagerType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
                //dynamic FWManager = Activator.CreateInstance(FWManagerType);
                //fw_data.enabled = FWManager.LocalPolicy.CurrentProfile.FirewallEnabled;

                List_Data.Add(fw_data);


                int m_version = System.Environment.OSVersion.Version.Major;

                string security_center = "";
                //string system_name = @"\\" + Environment.MachineName + @"\";

                if (m_version > 5)
                {
                    security_center = @"root\SecurityCenter2";
                }
                else
                {
                    security_center = @"root\SecurityCenter";
                }

                using (ManagementObjectSearcher fw_searcher = new ManagementObjectSearcher(security_center, "SELECT * FROM FirewallProduct"))
                {
                    using (ManagementObjectCollection data = fw_searcher.Get())
                    {
                        foreach (ManagementObject managementobject in data)
                        {
                            SecurityProductData security_software_data = new SecurityProductData();

                            security_software_data.name = (string)managementobject["displayName"];
                            security_software_data.path = (string)managementobject["pathToSignedProductExe"];

                            if (m_version > 5)
                            {
                                security_software_data.state32 = (UInt32)managementobject["productState"];

                                string hex_value = Convert.ToInt32(security_software_data.state32).ToString("X6");

                                if (hex_value.Substring(2, 2) == "10" || hex_value.Substring(2, 2) == "11")
                                {
                                    security_software_data.enabled = true;
                                }
                                else if (hex_value.Substring(2, 2) == "00" || hex_value.Substring(2, 2) == "01")
                                {
                                    security_software_data.enabled = false;
                                }
                            }
                            else
                            {
                                security_software_data.enabled = (bool)managementobject["enabled"];
                                security_software_data.version = (string)managementobject["versionNumber"];
                                security_software_data.state8  = (byte)managementobject["productState"];
                            }

                            List_Data.Add(security_software_data);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                LogWriter.Exception("Something went wrong parsing WMI for security software.", Ex);
            }

            return(List_Data);
        }