diff --git a/BinaryObjectScanner.Test/Data/StaticChecksTests.cs b/BinaryObjectScanner.Test/Data/StaticChecksTests.cs
index dafb7401..6901abd6 100644
--- a/BinaryObjectScanner.Test/Data/StaticChecksTests.cs
+++ b/BinaryObjectScanner.Test/Data/StaticChecksTests.cs
@@ -9,7 +9,7 @@ namespace BinaryObjectScanner.Test.Data
public void ContentCheckClasses_Populated()
{
var actual = StaticChecks.ContentCheckClasses;
- Assert.Equal(6, actual.Count);
+ Assert.Equal(6, actual.Length);
}
[Fact]
@@ -30,21 +30,21 @@ namespace BinaryObjectScanner.Test.Data
public void NewExecutableCheckClasses_Populated()
{
var actual = StaticChecks.NewExecutableCheckClasses;
- Assert.Equal(7, actual.Count);
+ Assert.Equal(7, actual.Length);
}
[Fact]
public void PathCheckClasses_Populated()
{
var actual = StaticChecks.PathCheckClasses;
- Assert.Equal(68, actual.Count);
+ Assert.Equal(68, actual.Length);
}
[Fact]
public void PortableExecutableCheckClasses_Populated()
{
var actual = StaticChecks.PortableExecutableCheckClasses;
- Assert.Equal(105, actual.Count);
+ Assert.Equal(105, actual.Length);
}
}
}
\ No newline at end of file
diff --git a/BinaryObjectScanner/Data/StaticChecks.cs b/BinaryObjectScanner/Data/StaticChecks.cs
index c4ef4cb6..1e5afb31 100644
--- a/BinaryObjectScanner/Data/StaticChecks.cs
+++ b/BinaryObjectScanner/Data/StaticChecks.cs
@@ -13,72 +13,72 @@ namespace BinaryObjectScanner.Data
///
/// Cache for all IContentCheck types
///
- public static List ContentCheckClasses
+ public static IContentCheck[] ContentCheckClasses
{
get
{
contentCheckClasses ??= InitCheckClasses();
- return contentCheckClasses ?? [];
+ return contentCheckClasses;
}
}
///
/// Cache for all IExecutableCheck types
///
- public static List> LinearExecutableCheckClasses
+ public static IExecutableCheck[] LinearExecutableCheckClasses
{
get
{
linearExecutableCheckClasses ??= InitCheckClasses>();
- return linearExecutableCheckClasses ?? [];
+ return linearExecutableCheckClasses;
}
}
///
/// Cache for all IExecutableCheck types
///
- public static List> MSDOSExecutableCheckClasses
+ public static IExecutableCheck[] MSDOSExecutableCheckClasses
{
get
{
msdosExecutableCheckClasses ??= InitCheckClasses>();
- return msdosExecutableCheckClasses ?? [];
+ return msdosExecutableCheckClasses;
}
}
///
/// Cache for all IExecutableCheck types
///
- public static List> NewExecutableCheckClasses
+ public static IExecutableCheck[] NewExecutableCheckClasses
{
get
{
newExecutableCheckClasses ??= InitCheckClasses>();
- return newExecutableCheckClasses ?? [];
+ return newExecutableCheckClasses;
}
}
///
/// Cache for all IPathCheck types
///
- public static List PathCheckClasses
+ public static IPathCheck[] PathCheckClasses
{
get
{
pathCheckClasses ??= InitCheckClasses();
- return pathCheckClasses ?? [];
+ return pathCheckClasses;
}
}
///
/// Cache for all IExecutableCheck types
///
- public static List> PortableExecutableCheckClasses
+ public static IExecutableCheck[] PortableExecutableCheckClasses
{
get
{
portableExecutableCheckClasses ??= InitCheckClasses>();
- return portableExecutableCheckClasses ?? [];
+ return portableExecutableCheckClasses;
}
}
@@ -89,32 +89,32 @@ namespace BinaryObjectScanner.Data
///
/// Cache for all IContentCheck types
///
- private static List? contentCheckClasses;
+ private static IContentCheck[]? contentCheckClasses;
///
/// Cache for all IExecutableCheck types
///
- private static List>? linearExecutableCheckClasses;
+ private static IExecutableCheck[]? linearExecutableCheckClasses;
///
/// Cache for all IExecutableCheck types
///
- private static List>? msdosExecutableCheckClasses;
+ private static IExecutableCheck[]? msdosExecutableCheckClasses;
///
/// Cache for all IExecutableCheck types
///
- private static List>? newExecutableCheckClasses;
+ private static IExecutableCheck[]? newExecutableCheckClasses;
///
/// Cache for all IPathCheck types
///
- private static List? pathCheckClasses;
+ private static IPathCheck[]? pathCheckClasses;
///
/// Cache for all IExecutableCheck types
///
- private static List>? portableExecutableCheckClasses;
+ private static IExecutableCheck[]? portableExecutableCheckClasses;
#endregion
@@ -123,13 +123,13 @@ namespace BinaryObjectScanner.Data
///
/// Initialize all implementations of a type
///
- private static List? InitCheckClasses()
- => InitCheckClasses(Assembly.GetExecutingAssembly()) ?? [];
+ private static T[] InitCheckClasses()
+ => InitCheckClasses(Assembly.GetExecutingAssembly());
///
/// Initialize all implementations of a type
///
- private static List InitCheckClasses(Assembly assembly)
+ private static T[] InitCheckClasses(Assembly assembly)
{
// Get information from the type param
string? interfaceName = typeof(T).FullName;
@@ -174,7 +174,7 @@ namespace BinaryObjectScanner.Data
classTypes.Add(instance);
}
- return classTypes;
+ return [.. classTypes];
}
#endregion
diff --git a/BinaryObjectScanner/FileType/Executable.cs b/BinaryObjectScanner/FileType/Executable.cs
index b3cb1dd8..3868253e 100644
--- a/BinaryObjectScanner/FileType/Executable.cs
+++ b/BinaryObjectScanner/FileType/Executable.cs
@@ -79,7 +79,7 @@ namespace BinaryObjectScanner.FileType
/// Scanner for handling recursive protections
/// True to include debug data, false otherwise
/// Set of protections in file, empty on error
- protected IDictionary RunExecutableChecks(string file, T exe, List checks, bool includeDebug)
+ protected IDictionary RunExecutableChecks(string file, T exe, U[] checks, bool includeDebug)
where U : IExecutableCheck
{
// Create the output dictionary