diff --git a/BinaryObjectScanner/Interfaces/IExtractableLinearExecutable.cs b/BinaryObjectScanner/Interfaces/IExtractableExecutable.cs
similarity index 59%
rename from BinaryObjectScanner/Interfaces/IExtractableLinearExecutable.cs
rename to BinaryObjectScanner/Interfaces/IExtractableExecutable.cs
index 8183da7f..70e097f4 100644
--- a/BinaryObjectScanner/Interfaces/IExtractableLinearExecutable.cs
+++ b/BinaryObjectScanner/Interfaces/IExtractableExecutable.cs
@@ -1,20 +1,20 @@
-using SabreTools.Serialization.Wrappers;
+using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Interfaces
{
///
/// Mark a LinearExecutable type as being able to be extracted
///
- public interface IExtractableLinearExecutable
+ public interface IExtractableExecutable where T : WrapperBase
{
///
- /// Extract a LinearExecutable to a temporary path, if possible
+ /// Extract an Executable to a path, if possible
///
/// Path to the input file
- /// LinearExecutable representing the read-in file
+ /// Executable representing the read-in file
/// Path to the output directory
/// True to include debug data, false otherwise
/// Path to extracted files, null on error
- bool Extract(string file, LinearExecutable lex, string outDir, bool includeDebug);
+ bool Extract(string file, T exe, string outDir, bool includeDebug);
}
}
diff --git a/BinaryObjectScanner/Interfaces/IExtractableMSDOSExecutable.cs b/BinaryObjectScanner/Interfaces/IExtractableMSDOSExecutable.cs
deleted file mode 100644
index 0c92c0f1..00000000
--- a/BinaryObjectScanner/Interfaces/IExtractableMSDOSExecutable.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using SabreTools.Serialization.Wrappers;
-
-namespace BinaryObjectScanner.Interfaces
-{
- ///
- /// Mark a MSDOS type as being able to be extracted
- ///
- public interface IExtractableMSDOSExecutable
- {
- ///
- /// Extract a MSDOS to a temporary path, if possible
- ///
- /// Path to the input file
- /// MSDOS representing the read-in file
- /// Path to the output directory
- /// True to include debug data, false otherwise
- /// Path to extracted files, null on error
- bool Extract(string file, MSDOS mz, string outDir, bool includeDebug);
- }
-}
diff --git a/BinaryObjectScanner/Interfaces/IExtractableNewExecutable.cs b/BinaryObjectScanner/Interfaces/IExtractableNewExecutable.cs
deleted file mode 100644
index 4cf79968..00000000
--- a/BinaryObjectScanner/Interfaces/IExtractableNewExecutable.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using SabreTools.Serialization.Wrappers;
-
-namespace BinaryObjectScanner.Interfaces
-{
- ///
- /// Mark a NewExecutable type as being able to be extracted
- ///
- public interface IExtractableNewExecutable
- {
- ///
- /// Extract a NewExecutable to a temporary path, if possible
- ///
- /// Path to the input file
- /// NewExecutable representing the read-in file
- /// Path to the output directory
- /// True to include debug data, false otherwise
- /// Path to extracted files, null on error
- bool Extract(string file, NewExecutable nex, string outDir, bool includeDebug);
- }
-}
diff --git a/BinaryObjectScanner/Interfaces/IExtractablePortableExecutable.cs b/BinaryObjectScanner/Interfaces/IExtractablePortableExecutable.cs
deleted file mode 100644
index 20e9cf18..00000000
--- a/BinaryObjectScanner/Interfaces/IExtractablePortableExecutable.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using SabreTools.Serialization.Wrappers;
-
-namespace BinaryObjectScanner.Interfaces
-{
- ///
- /// Mark a PortableExecutable type as being able to be extracted
- ///
- public interface IExtractablePortableExecutable
- {
- ///
- /// Extract a PortableExecutable to a temporary path, if possible
- ///
- /// Path to the input file
- /// PortableExecutable representing the read-in file
- /// Path to the output directory
- /// True to include debug data, false otherwise
- /// Path to extracted files, null on error
- bool Extract(string file, PortableExecutable pex, string outDir, bool includeDebug);
- }
-}
diff --git a/BinaryObjectScanner/Packer/ASPack.cs b/BinaryObjectScanner/Packer/ASPack.cs
index 6c6e64b9..59932de3 100644
--- a/BinaryObjectScanner/Packer/ASPack.cs
+++ b/BinaryObjectScanner/Packer/ASPack.cs
@@ -8,7 +8,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
- public class ASPack : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class ASPack : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/AdvancedInstaller.cs b/BinaryObjectScanner/Packer/AdvancedInstaller.cs
index 8c8906ae..b13a4d3f 100644
--- a/BinaryObjectScanner/Packer/AdvancedInstaller.cs
+++ b/BinaryObjectScanner/Packer/AdvancedInstaller.cs
@@ -6,7 +6,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
// TODO: Verify that all versions are detected
- public class AdvancedInstaller : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class AdvancedInstaller : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/AutoPlayMediaStudio.cs b/BinaryObjectScanner/Packer/AutoPlayMediaStudio.cs
index 7410d2ec..268d7576 100644
--- a/BinaryObjectScanner/Packer/AutoPlayMediaStudio.cs
+++ b/BinaryObjectScanner/Packer/AutoPlayMediaStudio.cs
@@ -7,7 +7,7 @@ namespace BinaryObjectScanner.Packer
// Created by IndigoRose (creators of Setup Factory), primarily to be used to create autorun menus for various media.
// Official website: https://www.autoplay.org/
// TODO: Add extraction
- public class AutoPlayMediaStudio : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class AutoPlayMediaStudio : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/CExe.cs b/BinaryObjectScanner/Packer/CExe.cs
index da73f7de..a4f0ae32 100644
--- a/BinaryObjectScanner/Packer/CExe.cs
+++ b/BinaryObjectScanner/Packer/CExe.cs
@@ -13,7 +13,7 @@ namespace BinaryObjectScanner.Packer
// The official website for CExe also includes the source code (which does have to be retrieved by the Wayback Machine)
// http://www.scottlu.com/Content/CExe.html
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class CExe : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class CExe : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/DotFuscator.cs b/BinaryObjectScanner/Packer/DotFuscator.cs
index f09fbbaa..02f59ba1 100644
--- a/BinaryObjectScanner/Packer/DotFuscator.cs
+++ b/BinaryObjectScanner/Packer/DotFuscator.cs
@@ -5,7 +5,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
- public class DotFuscator : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class DotFuscator : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/DotNetReactor.cs b/BinaryObjectScanner/Packer/DotNetReactor.cs
index 2be992ab..2f9268f5 100644
--- a/BinaryObjectScanner/Packer/DotNetReactor.cs
+++ b/BinaryObjectScanner/Packer/DotNetReactor.cs
@@ -15,7 +15,7 @@ namespace BinaryObjectScanner.Packer
///
/// Resource that could be useful for extraction: https://github.com/SychicBoy/NETReactorSlayer
///
- public class DotNetReactor : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class DotNetReactor : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/EXEStealth.cs b/BinaryObjectScanner/Packer/EXEStealth.cs
index 7e7b1c46..08a74019 100644
--- a/BinaryObjectScanner/Packer/EXEStealth.cs
+++ b/BinaryObjectScanner/Packer/EXEStealth.cs
@@ -10,7 +10,7 @@ namespace BinaryObjectScanner.Packer
// TODO: Detect 3.15 and up (maybe looking for `Metamorphism`)
// TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class EXEStealth : IContentCheck, IExtractablePortableExecutable, IPortableExecutableCheck
+ public class EXEStealth : IContentCheck, IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckContents(string file, byte[] fileContent, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/EmbeddedExecutable.cs b/BinaryObjectScanner/Packer/EmbeddedExecutable.cs
index aa168652..b4dad6af 100644
--- a/BinaryObjectScanner/Packer/EmbeddedExecutable.cs
+++ b/BinaryObjectScanner/Packer/EmbeddedExecutable.cs
@@ -11,7 +11,7 @@ namespace BinaryObjectScanner.Packer
/// Though not technically a packer, this detection is for any executables that include
/// others in their resources in some uncompressed manner to be used at runtime.
///
- public class EmbeddedExecutable : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class EmbeddedExecutable : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/GenteeInstaller.cs b/BinaryObjectScanner/Packer/GenteeInstaller.cs
index 9648c898..6807b7b1 100644
--- a/BinaryObjectScanner/Packer/GenteeInstaller.cs
+++ b/BinaryObjectScanner/Packer/GenteeInstaller.cs
@@ -6,7 +6,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class GenteeInstaller : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class GenteeInstaller : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/HyperTechCrackProof.cs b/BinaryObjectScanner/Packer/HyperTechCrackProof.cs
index daec175a..37368d44 100644
--- a/BinaryObjectScanner/Packer/HyperTechCrackProof.cs
+++ b/BinaryObjectScanner/Packer/HyperTechCrackProof.cs
@@ -9,7 +9,7 @@ namespace BinaryObjectScanner.Packer
// https://www.reddit.com/r/riseofincarnates/comments/m3vbnm/subreddit_revival_does_anyone_still_have_rise_of/
// https://steamcommunity.com/app/310950/discussions/0/4224890554455490819/
// https://github.com/horsicq/Detect-It-Easy/blob/63a1aa8bb23ca02d8a7fd5936db8dbc5c5d52dea/db/PE/HyperTech%20Crackproof.2.sg
- public class HyperTechCrackProof : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class HyperTechCrackProof : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/InnoSetup.cs b/BinaryObjectScanner/Packer/InnoSetup.cs
index ed35ca26..a4262d51 100644
--- a/BinaryObjectScanner/Packer/InnoSetup.cs
+++ b/BinaryObjectScanner/Packer/InnoSetup.cs
@@ -9,7 +9,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction - https://github.com/dscharrer/InnoExtract
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class InnoSetup : IExtractablePortableExecutable, INewExecutableCheck, IPortableExecutableCheck
+ public class InnoSetup : IExtractableExecutable, INewExecutableCheck, IPortableExecutableCheck
{
///
public string? CheckNewExecutable(string file, NewExecutable nex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/InstallAnywhere.cs b/BinaryObjectScanner/Packer/InstallAnywhere.cs
index 9ba9fa38..a4c65165 100644
--- a/BinaryObjectScanner/Packer/InstallAnywhere.cs
+++ b/BinaryObjectScanner/Packer/InstallAnywhere.cs
@@ -6,7 +6,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction, which may be possible with the current libraries but needs to be investigated further.
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class InstallAnywhere : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class InstallAnywhere : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/InstallerVISE.cs b/BinaryObjectScanner/Packer/InstallerVISE.cs
index f7902f4e..374b7ed7 100644
--- a/BinaryObjectScanner/Packer/InstallerVISE.cs
+++ b/BinaryObjectScanner/Packer/InstallerVISE.cs
@@ -6,7 +6,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction - https://github.com/Bioruebe/UniExtract2
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class InstallerVISE : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class InstallerVISE : IExtractableExecutable, IPortableExecutableCheck
{
//TODO: Add exact version detection for Windows builds, make sure versions before 3.X are detected as well, and detect the Mac builds.
///
diff --git a/BinaryObjectScanner/Packer/IntelInstallationFramework.cs b/BinaryObjectScanner/Packer/IntelInstallationFramework.cs
index b53a2374..180ce043 100644
--- a/BinaryObjectScanner/Packer/IntelInstallationFramework.cs
+++ b/BinaryObjectScanner/Packer/IntelInstallationFramework.cs
@@ -5,7 +5,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction, seems to primarily use MSZip compression.
- public class IntelInstallationFramework : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class IntelInstallationFramework : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
index c9e4b7ef..8adb54f4 100644
--- a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
+++ b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
@@ -7,7 +7,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction, which should be possible with LibMSPackN, but it refuses to extract due to SFX files lacking the typical CAB identifiers.
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class MicrosoftCABSFX : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class MicrosoftCABSFX : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/NSIS.cs b/BinaryObjectScanner/Packer/NSIS.cs
index 12e5e946..1bdd4d64 100644
--- a/BinaryObjectScanner/Packer/NSIS.cs
+++ b/BinaryObjectScanner/Packer/NSIS.cs
@@ -5,7 +5,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
- public class NSIS : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class NSIS : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/NeoLite.cs b/BinaryObjectScanner/Packer/NeoLite.cs
index b6983a6e..cffe4a53 100644
--- a/BinaryObjectScanner/Packer/NeoLite.cs
+++ b/BinaryObjectScanner/Packer/NeoLite.cs
@@ -13,7 +13,7 @@ namespace BinaryObjectScanner.Packer
/// PEiD scanning definitions that include NeoLite: https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
/// Website listing various packers, including NeoLite: http://protools.narod.ru/packers.htm
///
- public class NeoLite : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class NeoLite : IExtractableExecutable, IPortableExecutableCheck
{
// TODO: Find samples of NeoLite 1.X.
///
diff --git a/BinaryObjectScanner/Packer/PECompact.cs b/BinaryObjectScanner/Packer/PECompact.cs
index 2f98a604..35e07dde 100644
--- a/BinaryObjectScanner/Packer/PECompact.cs
+++ b/BinaryObjectScanner/Packer/PECompact.cs
@@ -5,7 +5,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Better version detection - https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
// TODO: Add extraction
- public class PECompact : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class PECompact : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/Petite.cs b/BinaryObjectScanner/Packer/Petite.cs
index 8d7a0071..6e3d4e98 100644
--- a/BinaryObjectScanner/Packer/Petite.cs
+++ b/BinaryObjectScanner/Packer/Petite.cs
@@ -5,7 +5,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class PEtite : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class PEtite : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/SetupFactory.cs b/BinaryObjectScanner/Packer/SetupFactory.cs
index 08769c73..c451a1ab 100644
--- a/BinaryObjectScanner/Packer/SetupFactory.cs
+++ b/BinaryObjectScanner/Packer/SetupFactory.cs
@@ -7,7 +7,7 @@ namespace BinaryObjectScanner.Packer
// TODO: Add extraction, which is possible but the only tools available that can
// do this seem to be Universal Extractor 2 and InstallExplorer (https://totalcmd.net/plugring/InstallExplorer.html)
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class SetupFactory : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class SetupFactory : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/SevenZipSFX.cs b/BinaryObjectScanner/Packer/SevenZipSFX.cs
index 563f3db1..6deb086c 100644
--- a/BinaryObjectScanner/Packer/SevenZipSFX.cs
+++ b/BinaryObjectScanner/Packer/SevenZipSFX.cs
@@ -4,7 +4,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
- public class SevenZipSFX : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class SevenZipSFX : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/Shrinker.cs b/BinaryObjectScanner/Packer/Shrinker.cs
index b221c8f1..72f509d7 100644
--- a/BinaryObjectScanner/Packer/Shrinker.cs
+++ b/BinaryObjectScanner/Packer/Shrinker.cs
@@ -5,7 +5,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class Shrinker : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class Shrinker : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/UPX.cs b/BinaryObjectScanner/Packer/UPX.cs
index f1a8dae6..aeaff84f 100644
--- a/BinaryObjectScanner/Packer/UPX.cs
+++ b/BinaryObjectScanner/Packer/UPX.cs
@@ -9,7 +9,7 @@ namespace BinaryObjectScanner.Packer
{
// TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class UPX : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class UPX : IExtractableExecutable, IPortableExecutableCheck
{
private static readonly Regex _oldUpxVersionMatch = new Regex(@"\$Id: UPX (.*?) Copyright \(C\)", RegexOptions.Compiled);
diff --git a/BinaryObjectScanner/Packer/WinRARSFX.cs b/BinaryObjectScanner/Packer/WinRARSFX.cs
index 767c7921..6c012501 100644
--- a/BinaryObjectScanner/Packer/WinRARSFX.cs
+++ b/BinaryObjectScanner/Packer/WinRARSFX.cs
@@ -4,7 +4,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
- public class WinRARSFX : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class WinRARSFX : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/WinZipSFX.cs b/BinaryObjectScanner/Packer/WinZipSFX.cs
index 2005ffb0..528a0bf4 100644
--- a/BinaryObjectScanner/Packer/WinZipSFX.cs
+++ b/BinaryObjectScanner/Packer/WinZipSFX.cs
@@ -5,7 +5,7 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
- public class WinZipSFX : IExtractableNewExecutable, IExtractablePortableExecutable, INewExecutableCheck, IPortableExecutableCheck
+ public class WinZipSFX : IExtractableExecutable, IExtractableExecutable, INewExecutableCheck, IPortableExecutableCheck
{
///
public string? CheckNewExecutable(string file, NewExecutable nex, bool includeDebug)
diff --git a/BinaryObjectScanner/Packer/WiseInstaller.cs b/BinaryObjectScanner/Packer/WiseInstaller.cs
index 4f3d73a6..9d98c37d 100644
--- a/BinaryObjectScanner/Packer/WiseInstaller.cs
+++ b/BinaryObjectScanner/Packer/WiseInstaller.cs
@@ -13,7 +13,7 @@ using WiseUnpacker.EWISE;
namespace BinaryObjectScanner.Packer
{
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class WiseInstaller : IExtractableNewExecutable, IExtractablePortableExecutable, INewExecutableCheck, IPortableExecutableCheck
+ public class WiseInstaller : IExtractableExecutable, IExtractableExecutable, INewExecutableCheck, IPortableExecutableCheck
{
///
public string? CheckNewExecutable(string file, NewExecutable nex, bool includeDebug)
diff --git a/BinaryObjectScanner/Protection/Armadillo.cs b/BinaryObjectScanner/Protection/Armadillo.cs
index e512719f..ead6b6f2 100644
--- a/BinaryObjectScanner/Protection/Armadillo.cs
+++ b/BinaryObjectScanner/Protection/Armadillo.cs
@@ -18,7 +18,7 @@ namespace BinaryObjectScanner.Protection
// TODO: Add version checking, if possible
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
- public class Armadillo : IExtractablePortableExecutable, IPortableExecutableCheck
+ public class Armadillo : IExtractableExecutable, IPortableExecutableCheck
{
///
public string? CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug)
diff --git a/BinaryObjectScanner/Scanner.cs b/BinaryObjectScanner/Scanner.cs
index 75beb9f2..50e82801 100644
--- a/BinaryObjectScanner/Scanner.cs
+++ b/BinaryObjectScanner/Scanner.cs
@@ -481,8 +481,8 @@ namespace BinaryObjectScanner
// If we have any extractable packers
var extractables = classes
- .Where(c => c is IExtractableMSDOSExecutable)
- .Select(c => c as IExtractableMSDOSExecutable);
+ .Where(c => c is IExtractableExecutable)
+ .Select(c => c as IExtractableExecutable);
extractables.IterateWithAction(extractable =>
{
// If we have an invalid extractable somehow
@@ -547,8 +547,8 @@ namespace BinaryObjectScanner
// If we have any extractable packers
var extractables = classes
- .Where(c => c is IExtractableLinearExecutable)
- .Select(c => c as IExtractableLinearExecutable);
+ .Where(c => c is IExtractableExecutable)
+ .Select(c => c as IExtractableExecutable);
extractables.IterateWithAction(extractable =>
{
// If we have an invalid extractable somehow
@@ -613,8 +613,8 @@ namespace BinaryObjectScanner
// If we have any extractable packers
var extractables = classes
- .Where(c => c is IExtractableNewExecutable)
- .Select(c => c as IExtractableNewExecutable);
+ .Where(c => c is IExtractableExecutable)
+ .Select(c => c as IExtractableExecutable);
extractables.IterateWithAction(extractable =>
{
// If we have an invalid extractable somehow
@@ -679,8 +679,8 @@ namespace BinaryObjectScanner
// If we have any extractable packers
var extractables = classes
- .Where(c => c is IExtractablePortableExecutable)
- .Select(c => c as IExtractablePortableExecutable);
+ .Where(c => c is IExtractableExecutable)
+ .Select(c => c as IExtractableExecutable);
extractables.IterateWithAction(extractable =>
{
// If we have an invalid extractable somehow