Initial ISO Protection Detection (#389)

* Initial

* Laserlock in

* This is a better way to read the string

* That array copy wasn't needed either

* Use static filetype method, rename filetype.iso

* Initial Codelok ISO scanning

* Comments with redump IDs

* Add redump examples to laserlock

* Change for testing

* Small comment

* TAGES

* halfway through safedisc

* Safedisc done

* Fix 1

* Major oversights in puredata fixed

* Finish SecuROM

* ProtectDiSC done

* Alpharom done

* Finish StarForce, initial PR review ready

* Wait, that would be really bad

* One more for the road.

* Small finding

* Small fix for finding

* Notes on finding

* Several minor fixes, decisions

* what do you MEAN it returns true if there are no elements in the array

* Future todo

* Update packages

* Rebase

* Fix runisochecks

* First round of fixes

* Second round of fixes

* Tests attempt 1

* Make checks work

* Individual test attempt 1

* Final tests

---------

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>
This commit is contained in:
HeroponRikiBestest
2025-11-07 07:22:28 -05:00
committed by GitHub
parent 9f5b292035
commit a281e8325e
22 changed files with 925 additions and 9 deletions

View File

@@ -18,5 +18,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new AlphaROM();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -18,5 +18,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new CopyLok();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -40,5 +40,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new LaserLok();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -53,5 +53,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new Macrovision();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -40,5 +40,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new ProtectDISC();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -40,5 +40,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new SecuROM();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -40,5 +40,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new StarForce();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -40,5 +40,18 @@ namespace BinaryObjectScanner.Test.Protection
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
[Fact]
public void CheckDiskImageTest()
{
string file = "filename";
SabreTools.Data.Models.ISO9660.Volume model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.ISO9660 iso = new(model, source);
var checker = new TAGES();
string? actual = checker.CheckDiskImage(file, iso, includeDebug: false);
Assert.Null(actual);
}
}
}