diff --git a/BinaryObjectScanner/Data/ProtectionDictionary.cs b/BinaryObjectScanner/Data/ProtectionDictionary.cs index d5e2da5e..bda9dc65 100644 --- a/BinaryObjectScanner/Data/ProtectionDictionary.cs +++ b/BinaryObjectScanner/Data/ProtectionDictionary.cs @@ -240,6 +240,9 @@ namespace BinaryObjectScanner.Data /// Set of protections parsed, empty on error internal static List ProcessProtectionString(string? protection) { + // Trim the protection string, if possible + protection = protection?.Trim(); + // If we have an invalid protection string if (string.IsNullOrEmpty(protection)) return []; @@ -254,8 +257,26 @@ namespace BinaryObjectScanner.Data if (protection!.Contains(";")) #endif { +#if NETFRAMEWORK || NETSTANDARD var splitProtections = protection.Split(';'); + foreach (var subProtection in splitProtections) + { + var subProtectionTrimmed = subProtection.Trim(); + if (subProtectionTrimmed.Length > 0) + protections.Add(subProtectionTrimmed); + } +#elif NETCOREAPP3_1 + var splitProtections = protection.Split(';', StringSplitOptions.RemoveEmptyEntries); + foreach (var subProtection in splitProtections) + { + var subProtectionTrimmed = subProtection.Trim(); + if (subProtectionTrimmed.Length > 0) + protections.Add(subProtectionTrimmed); + } +#else + var splitProtections = protection.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); protections.AddRange(splitProtections); +#endif } else {