Add content and NE tests for packers

This commit is contained in:
Matt Nadareski
2024-12-02 01:59:23 -05:00
parent bf5899d9fd
commit 477356bd77
6 changed files with 102 additions and 5 deletions

View File

@@ -6,6 +6,17 @@ namespace BinaryObjectScanner.Test.Packer
{
public class EXEStealthTests
{
[Fact]
public void CheckContentsTest()
{
string file = "filename";
byte[] fileContent = [0x01, 0x02, 0x03, 0x04];
var checker = new EXEStealth();
string? actual = checker.CheckContents(file, fileContent, includeDebug: true);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
@@ -18,7 +29,7 @@ namespace BinaryObjectScanner.Test.Packer
string? actual = checker.CheckExecutable(file, pex, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void ExtractPortableExecutableTest()
{

View File

@@ -6,6 +6,19 @@ namespace BinaryObjectScanner.Test.Packer
{
public class InnoSetupTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream();
SabreTools.Serialization.Wrappers.NewExecutable nex = new(model, source);
var checker = new InnoSetup();
string? actual = checker.CheckExecutable(file, nex, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
@@ -18,7 +31,21 @@ namespace BinaryObjectScanner.Test.Packer
string? actual = checker.CheckExecutable(file, pex, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void ExtractNewExecutableTest()
{
string file = "filename";
SabreTools.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream();
SabreTools.Serialization.Wrappers.NewExecutable nex = new(model, source);
string outputDir = string.Empty;
var checker = new InnoSetup();
bool actual = checker.Extract(file, nex, outputDir, includeDebug: false);
Assert.False(actual);
}
[Fact]
public void ExtractPortableExecutableTest()
{

View File

@@ -6,6 +6,19 @@ namespace BinaryObjectScanner.Test.Packer
{
public class WinZipSFXTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream();
SabreTools.Serialization.Wrappers.NewExecutable nex = new(model, source);
var checker = new WinZipSFX();
string? actual = checker.CheckExecutable(file, nex, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
@@ -19,6 +32,20 @@ namespace BinaryObjectScanner.Test.Packer
Assert.Null(actual);
}
[Fact]
public void ExtractNewExecutableTest()
{
string file = "filename";
SabreTools.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream();
SabreTools.Serialization.Wrappers.NewExecutable nex = new(model, source);
string outputDir = string.Empty;
var checker = new WinZipSFX();
bool actual = checker.Extract(file, nex, outputDir, includeDebug: false);
Assert.False(actual);
}
[Fact]
public void ExtractPortableExecutableTest()
{

View File

@@ -6,6 +6,19 @@ namespace BinaryObjectScanner.Test.Packer
{
public class WiseInstallerTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream();
SabreTools.Serialization.Wrappers.NewExecutable nex = new(model, source);
var checker = new WiseInstaller();
string? actual = checker.CheckExecutable(file, nex, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
@@ -19,6 +32,20 @@ namespace BinaryObjectScanner.Test.Packer
Assert.Null(actual);
}
[Fact]
public void ExtractNewExecutableTest()
{
string file = "filename";
SabreTools.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream();
SabreTools.Serialization.Wrappers.NewExecutable nex = new(model, source);
string outputDir = string.Empty;
var checker = new WiseInstaller();
bool actual = checker.Extract(file, nex, outputDir, includeDebug: false);
Assert.False(actual);
}
[Fact]
public void ExtractPortableExecutableTest()
{

View File

@@ -8,7 +8,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 : IExecutableCheck<NewExecutable>,
public class InnoSetup : IExtractableExecutable<NewExecutable>,
IExtractableExecutable<PortableExecutable>
{
/// <inheritdoc/>
@@ -52,6 +52,12 @@ namespace BinaryObjectScanner.Packer
return null;
}
/// <inheritdoc/>
public bool Extract(string file, NewExecutable nex, string outDir, bool includeDebug)
{
return false;
}
/// <inheritdoc/>
public bool Extract(string file, PortableExecutable pex, string outDir, bool includeDebug)
{

View File

@@ -71,10 +71,9 @@ namespace BinaryObjectScanner.Packer
/// <inheritdoc/>
public bool Extract(string file, NewExecutable nex, string outDir, bool includeDebug)
{
Directory.CreateDirectory(outDir);
try
{
Directory.CreateDirectory(outDir);
return Extractor.ExtractTo(file, outDir);
}
catch (Exception ex)