diff --git a/src/Ryujinx.Common/Utilities/AVUtils.cs b/src/Ryujinx.Common/Utilities/AVUtils.cs new file mode 100644 index 0000000000..3238d0cfe1 --- /dev/null +++ b/src/Ryujinx.Common/Utilities/AVUtils.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; +using System.Management; + +namespace Ryujinx.Common.Utilities +{ + public static class AVUtils + { + public static bool IsRunningThirdPartyAV() + { + if (!OperatingSystem.IsWindows()) + { + return false; + } + + ManagementObjectSearcher wmiData = new ManagementObjectSearcher(@"root\SecurityCenter2", "SELECT * FROM AntiVirusProduct"); + ManagementObjectCollection data = wmiData.Get(); + + foreach (ManagementObject dataObj in data.Cast()) + { + try + { + string displayName = (string)dataObj["displayName"]; + if (displayName != "Windows Defender") + { + return true; + } + } + catch (ManagementException) + { + continue; + } + } + + return false; + } + } +} diff --git a/src/Ryujinx.Gtk3/Program.cs b/src/Ryujinx.Gtk3/Program.cs index 749cb69786..d2d3b6033e 100644 --- a/src/Ryujinx.Gtk3/Program.cs +++ b/src/Ryujinx.Gtk3/Program.cs @@ -4,6 +4,7 @@ using Ryujinx.Common.Configuration; using Ryujinx.Common.GraphicsDriver; using Ryujinx.Common.Logging; using Ryujinx.Common.SystemInterop; +using Ryujinx.Common.Utilities; using Ryujinx.Modules; using Ryujinx.SDL2.Common; using Ryujinx.UI; @@ -341,6 +342,11 @@ namespace Ryujinx Logger.Notice.Print(LogClass.Application, $"Ryujinx Version: {Version}"); SystemInfo.Gather().Print(); + if (AVUtils.IsRunningThirdPartyAV()) + { + Logger.Notice.Print(LogClass.Application, $"Third-Party AV active"); + } + var enabledLogs = Logger.GetEnabledLevels(); Logger.Notice.Print(LogClass.Application, $"Logs Enabled: {(enabledLogs.Count == 0 ? "" : string.Join(", ", enabledLogs))}"); diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index 4f68ca24f0..03bfc63659 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -7,6 +7,7 @@ using Ryujinx.Common.Configuration; using Ryujinx.Common.GraphicsDriver; using Ryujinx.Common.Logging; using Ryujinx.Common.SystemInterop; +using Ryujinx.Common.Utilities; using Ryujinx.Modules; using Ryujinx.SDL2.Common; using Ryujinx.UI.Common; @@ -214,6 +215,11 @@ namespace Ryujinx.Ava Logger.Notice.Print(LogClass.Application, $"Ryujinx Version: {Version}"); SystemInfo.Gather().Print(); + if (AVUtils.IsRunningThirdPartyAV()) + { + Logger.Notice.Print(LogClass.Application, $"Third-Party AV active"); + } + Logger.Notice.Print(LogClass.Application, $"Logs Enabled: {(Logger.GetEnabledLevels().Count == 0 ? "" : string.Join(", ", Logger.GetEnabledLevels()))}"); if (AppDataManager.Mode == AppDataManager.LaunchMode.Custom)