diff --git a/BinaryObjectScanner/Packer/GenteeInstaller.cs b/BinaryObjectScanner/Packer/GenteeInstaller.cs index 4578b8e4..60513b65 100644 --- a/BinaryObjectScanner/Packer/GenteeInstaller.cs +++ b/BinaryObjectScanner/Packer/GenteeInstaller.cs @@ -24,7 +24,7 @@ namespace BinaryObjectScanner.Packer // // This was found in a "Create Install 2003"-made installer string? name = exe.AssemblyName; - if (name == "Gentee.Installer.Install") + if (name.OptionalEquals("Gentee.Installer.Install")) return "Gentee Installer"; return null; diff --git a/BinaryObjectScanner/Packer/HyperTechCrackProof.cs b/BinaryObjectScanner/Packer/HyperTechCrackProof.cs index c5468ea5..99a2ad29 100644 --- a/BinaryObjectScanner/Packer/HyperTechCrackProof.cs +++ b/BinaryObjectScanner/Packer/HyperTechCrackProof.cs @@ -17,7 +17,7 @@ namespace BinaryObjectScanner.Packer // This check may be overly limiting, as it excludes the sample provided to DiE (https://github.com/horsicq/Detect-It-Easy/issues/102). // TODO: Find further samples and invesitgate if the "peC" section is only present on specific versions. bool importTableMatch = Array.Exists(exe.ImportTable?.ImportDirectoryTable ?? [], - idte => idte?.Name == "KeRnEl32.dLl"); + idte => idte.Name == "KeRnEl32.dLl"); if (exe.ContainsSection("peC", exact: true) && importTableMatch) return "HyperTech CrackProof"; diff --git a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs index 72ba523c..6ab0b19c 100644 --- a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs +++ b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs @@ -4,7 +4,6 @@ using SabreTools.Serialization.Wrappers; namespace BinaryObjectScanner.Packer { - // TODO: Add extraction // https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt public class MicrosoftCABSFX : IExecutableCheck { diff --git a/BinaryObjectScanner/Packer/SevenZipSFX.cs b/BinaryObjectScanner/Packer/SevenZipSFX.cs index 776f798c..1bcae117 100644 --- a/BinaryObjectScanner/Packer/SevenZipSFX.cs +++ b/BinaryObjectScanner/Packer/SevenZipSFX.cs @@ -9,25 +9,29 @@ namespace BinaryObjectScanner.Packer public string? CheckExecutable(string file, PortableExecutable exe, bool includeDebug) { // Get the assembly description, if possible - if (exe.AssemblyDescription.OptionalStartsWith("7-Zip Self-extracting Archive")) + string? name = exe.AssemblyDescription; + if (name.OptionalStartsWith("7-Zip Self-extracting Archive")) return $"7-Zip SFX {exe.AssemblyDescription!.Substring("7-Zip Self-extracting Archive ".Length)}"; // Get the file description, if it exists - if (exe.FileDescription.OptionalEquals("7z SFX")) + name = exe.FileDescription; + if (name.OptionalEquals("7z SFX")) return "7-Zip SFX"; - if (exe.FileDescription.OptionalEquals("7z Self-Extract Setup")) + if (name.OptionalEquals("7z Self-Extract Setup")) return "7-Zip SFX"; // Get the original filename, if it exists - if (exe.OriginalFilename.OptionalEquals("7z.sfx.exe")) + name = exe.OriginalFilename; + if (name.OptionalEquals("7z.sfx.exe")) return "7-Zip SFX"; - else if (exe.OriginalFilename.OptionalEquals("7zS.sfx")) + else if (name.OptionalEquals("7zS.sfx")) return "7-Zip SFX"; // Get the internal name, if it exists - if (exe.InternalName.OptionalEquals("7z.sfx")) + name = exe.InternalName; + if (name.OptionalEquals("7z.sfx")) return "7-Zip SFX"; - else if (exe.InternalName.OptionalEquals("7zS.sfx")) + else if (name.OptionalEquals("7zS.sfx")) return "7-Zip SFX"; // If any dialog boxes match diff --git a/BinaryObjectScanner/Packer/Shrinker.cs b/BinaryObjectScanner/Packer/Shrinker.cs index e81c84eb..3a7d4bb6 100644 --- a/BinaryObjectScanner/Packer/Shrinker.cs +++ b/BinaryObjectScanner/Packer/Shrinker.cs @@ -10,9 +10,12 @@ namespace BinaryObjectScanner.Packer /// public string? CheckExecutable(string file, PortableExecutable exe, bool includeDebug) { - // Get the .shrink0 and .shrink2 sections, if they exist -- TODO: Confirm if both are needed or either/or is fine - if (exe.ContainsSection(".shrink0", true) || exe.ContainsSection(".shrink2", true)) - return "Shrinker"; + bool shrink0 = exe.ContainsSection(".shrink0", exact: true); + bool shrink2 = exe.ContainsSection(".shrink2", exact: true); + + // TODO: Confirm if both need to be present + if (shrink0 || shrink2) + return "Shrinker"; // TODO: Figure out how to get version return null; } diff --git a/BinaryObjectScanner/Packer/SpoonInstaller.cs b/BinaryObjectScanner/Packer/SpoonInstaller.cs index d1896f97..16e11bb4 100644 --- a/BinaryObjectScanner/Packer/SpoonInstaller.cs +++ b/BinaryObjectScanner/Packer/SpoonInstaller.cs @@ -19,7 +19,7 @@ namespace BinaryObjectScanner.Packer // // This was found in a "Create Install 2003"-made installer name = exe.AssemblyName; - if (name == "Illustrate.Spoon.Installer") + if (name.OptionalEquals("Illustrate.Spoon.Installer")) return "Spoon Installer"; return null;