diff --git a/.gitmodules b/.gitmodules
index 662c76f2..00469374 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +1,3 @@
[submodule "BinaryObjectScanner/_EXTERNAL/stormlibsharp"]
path = BinaryObjectScanner/_EXTERNAL/stormlibsharp
url = https://github.com/robpaveza/stormlibsharp.git
-[submodule "BinaryObjectScanner/_EXTERNAL/libmspack4n"]
- path = BinaryObjectScanner/_EXTERNAL/libmspack4n
- url = https://github.com/activescott/libmspack4n.git
-[submodule "BinaryObjectScanner/_EXTERNAL/LessIO"]
- path = BinaryObjectScanner/_EXTERNAL/LessIO
- url = https://github.com/activescott/LessIO.git
diff --git a/BinaryObjectScanner/BinaryObjectScanner.csproj b/BinaryObjectScanner/BinaryObjectScanner.csproj
index 81f1b691..59cd8c04 100644
--- a/BinaryObjectScanner/BinaryObjectScanner.csproj
+++ b/BinaryObjectScanner/BinaryObjectScanner.csproj
@@ -41,9 +41,6 @@
$(DefaultItemExcludes);
**\AssemblyInfo.cs;
- _EXTERNAL\LessIO\src\LessIO.Tests\**;
- _EXTERNAL\libmspack4n\lib\**;
- _EXTERNAL\libmspack4n\libmspack4ntest\**;
_EXTERNAL\stormlibsharp\lib\**;
_EXTERNAL\stormlibsharp\src\TestConsole\**
diff --git a/BinaryObjectScanner/FileType/MicrosoftCAB.cs b/BinaryObjectScanner/FileType/MicrosoftCAB.cs
index b50e6a80..12fe785e 100644
--- a/BinaryObjectScanner/FileType/MicrosoftCAB.cs
+++ b/BinaryObjectScanner/FileType/MicrosoftCAB.cs
@@ -2,11 +2,7 @@
using System.IO;
using BinaryObjectScanner.Interfaces;
using SabreTools.IO.Extensions;
-#if (NET40_OR_GREATER || NETCOREAPP) && WINX86
-using LibMSPackN;
-#else
using SabreTools.Models.MicrosoftCabinet;
-#endif
namespace BinaryObjectScanner.FileType
{
@@ -30,7 +26,6 @@ namespace BinaryObjectScanner.FileType
///
public bool Extract(Stream? stream, string file, string outDir, bool includeDebug)
{
-#if NET20 || NET35 || !WINX86
// TODO: Remove once Serialization is updated
// Get a wrapper for the set, if possible
@@ -61,46 +56,6 @@ namespace BinaryObjectScanner.FileType
}
return true;
-#else
- try
- {
- if (!File.Exists(file))
- return false;
-
- // Loop over each entry
- var cabArchive = new MSCabinet(file);
- foreach (var compressedFile in cabArchive.GetFiles())
- {
- try
- {
- // Ensure directory separators are consistent
- string fileName = compressedFile.Filename;
- if (Path.DirectorySeparatorChar == '\\')
- fileName = fileName.Replace('/', '\\');
- else if (Path.DirectorySeparatorChar == '/')
- fileName = fileName.Replace('\\', '/');
-
- string tempFile = Path.Combine(outDir, fileName);
- var directoryName = Path.GetDirectoryName(tempFile);
- if (directoryName != null && !Directory.Exists(directoryName))
- Directory.CreateDirectory(directoryName);
-
- compressedFile.ExtractTo(tempFile);
- }
- catch (Exception ex)
- {
- if (includeDebug) Console.Error.WriteLine(ex);
- }
- }
-
- return true;
- }
- catch (Exception ex)
- {
- if (includeDebug) Console.Error.WriteLine(ex);
- return false;
- }
-#endif
}
///
diff --git a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
index f9a699a2..234f27c6 100644
--- a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
+++ b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
@@ -4,7 +4,7 @@ using SabreTools.Serialization.Wrappers;
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.
+ // TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
public class MicrosoftCABSFX : IExtractableExecutable
{
diff --git a/BinaryObjectScanner/_EXTERNAL/LessIO b/BinaryObjectScanner/_EXTERNAL/LessIO
deleted file mode 160000
index 3dcf2c14..00000000
--- a/BinaryObjectScanner/_EXTERNAL/LessIO
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3dcf2c147b219352c580ee9950e8ba1f3d1fbe27
diff --git a/BinaryObjectScanner/_EXTERNAL/README.MD b/BinaryObjectScanner/_EXTERNAL/README.MD
index 4baa7370..1dab0038 100644
--- a/BinaryObjectScanner/_EXTERNAL/README.MD
+++ b/BinaryObjectScanner/_EXTERNAL/README.MD
@@ -4,6 +4,4 @@ This directory contains multiple external libraries. Here is the status of each:
| Directory | Library | Status |
| --------- | ------- | ------ |
-| LessIO | [LessIO](https://github.com/activescott/LessIO) | External submodule |
-| libmspack4n | [libmspack4n](https://github.com/activescott/libmspack4n) | External submodule |
| stormlibsharp | [stormlibsharp](https://github.com/robpaveza/stormlibsharp) | External submodule |
diff --git a/BinaryObjectScanner/_EXTERNAL/libmspack4n b/BinaryObjectScanner/_EXTERNAL/libmspack4n
deleted file mode 160000
index 7213a361..00000000
--- a/BinaryObjectScanner/_EXTERNAL/libmspack4n
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7213a361f80bee1d96f428aceb5595977d024855
diff --git a/ExtractionTool/Program.cs b/ExtractionTool/Program.cs
index eacabd5c..a3e07427 100644
--- a/ExtractionTool/Program.cs
+++ b/ExtractionTool/Program.cs
@@ -297,14 +297,12 @@ namespace ExtractionTool
szdd.Extract(Path.GetFileName(file), outputDirectory);
}
- // Microsoft Cabinet archive -- Implementation partially moved to Serialization
+ // Microsoft Cabinet archive -- Implementation moved to Serialization
else if (ft == WrapperType.MicrosoftCAB)
{
// Build the cabinet information
Console.WriteLine("Extracting MS-CAB contents");
-#if NET20 || NET35 || !WINX86
- Console.WriteLine("WARNING: LZX compression not supported so some files may be skipped!");
-#endif
+ Console.WriteLine("WARNING: LZX and Quantum compression schemes are not supported so some files may be skipped!");
Console.WriteLine();
// Extract using the FileType
diff --git a/README.md b/README.md
index 83eb6cbc..5ebf429c 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,6 @@ C# protection, packer, and archive scanning library. This currently compiles as
The following non-project libraries (or ports thereof) are used for file handling:
-- [LessIO](https://github.com/activescott/LessIO) - Used by libmspack4n for IO handling
-- [libmspack4n](https://github.com/activescott/libmspack4n) MS-CAB extraction [Unused in .NET Framework 2.0/3.5, non-Windows, and non-x86 builds due to Windows-specific libraries]
- [SharpCompress](https://github.com/adamhathcock/sharpcompress) - Common archive format extraction
- [StormLibSharp](https://github.com/robpaveza/stormlibsharp) - MoPaQ extraction [Unused in .NET Framework 2.0/3.5/4.0, non-Windows, and non-x86 builds due to Windows-specific libraries]
- [UnshieldSharp](https://github.com/mnadareski/UnshieldSharp) - InstallShield CAB extraction
@@ -212,7 +210,7 @@ Below is a list of container formats that are supported in some way:
| InstallShield CAB | Yes | Yes | Yes | Via `UnshieldSharp` |
| Linear Executable | No | No | No | Skeleton only |
| Link Data Security encrypted file | No | Yes | No | |
-| Microsoft cabinet file | Yes | Yes | Yes* | Via `libmspack4n`, Windows x86 only, .NET Framework 4.5.2 and above |
+| Microsoft cabinet file | Yes | Yes | Yes* | Does not support LZX or Quantum compression |
| Microsoft LZ-compressed files | No | Yes | Yes | |
| MoPaQ game data archive (MPQ) | No | Yes | Yes* | Via `StormLibSharp`, Windows x86 only, .NET Framework 4.5.2 and above |
| MS-DOS Executable | Yes | Yes | No | Incomplete |