From 14849f45da76280762aa8a2fa85e7081fdd8f11e Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 27 Sep 2024 13:24:19 -0400 Subject: [PATCH] Remove redundant reports in Macrovision code --- BinaryObjectScanner/Protection/Macrovision.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/BinaryObjectScanner/Protection/Macrovision.cs b/BinaryObjectScanner/Protection/Macrovision.cs index 0f58c360..fb42ab3c 100644 --- a/BinaryObjectScanner/Protection/Macrovision.cs +++ b/BinaryObjectScanner/Protection/Macrovision.cs @@ -275,6 +275,8 @@ namespace BinaryObjectScanner.Protection if (!string.IsNullOrEmpty(safeDisc)) resultsList.Add(safeDisc!); + // Clean the result list + resultsList = CleanResultList(resultsList); if (resultsList != null && resultsList.Count > 0) return string.Join(", ", [.. resultsList]); @@ -650,12 +652,25 @@ namespace BinaryObjectScanner.Protection }; } - private List? CleanResultList(List? resultsList) + private static List? CleanResultList(List? resultsList) { // If we have an invalid result list if (resultsList == null || resultsList.Count == 0) return resultsList; + // Remove duplicates + if (resultsList.Contains("Macrovision Protected Application")) + { + if (resultsList.Contains("Macrovision Protected Application [Version Expunged]")) + resultsList = resultsList.Where(r => r != "Macrovision Protected Application").ToList(); + else if (resultsList.Contains("Macrovision Protected Application (Entry point not present in the stxt371 section. Executable is either unprotected or nonfunctional)")) + resultsList = resultsList.Where(r => r != "Macrovision Protected Application").ToList(); + else if (resultsList.Contains("Macrovision Protected Application (Generic detection - Report to us on GitHub)")) + resultsList = resultsList.Where(r => r != "Macrovision Protected Application").ToList(); + else if (resultsList.Contains("Macrovision Protected Application (Report this to us on GitHub)")) + resultsList = resultsList.Where(r => r != "Macrovision Protected Application").ToList(); + } + // Get distinct and order return [.. resultsList.Distinct().OrderBy(s => s)]; }