diff --git a/BinaryObjectScanner/Protection/UbisoftOrbit.cs b/BinaryObjectScanner/Protection/UbisoftOrbit.cs new file mode 100644 index 00000000..3d8fe22c --- /dev/null +++ b/BinaryObjectScanner/Protection/UbisoftOrbit.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; +using BinaryObjectScanner.Interfaces; +using SabreTools.Matching; +using SabreTools.Matching.Paths; + +namespace BinaryObjectScanner.Protection +{ + /// + /// Ubitsoft Orbit (Online DRM) + /// + /// TODO: Investigate the DLLs to find more markers + public class UbisoftOrbit : IPathCheck + { + /// + public List CheckDirectoryPath(string path, List? files) + { + var matchers = new List + { + new(new FilePathMatch("GameOrbit.dll"), "Ubisoft Orbit"), + new(new FilePathMatch("ubiorbitapi_r2_loader.dll"), "Ubisoft Orbit"), + }; + + return MatchUtil.GetAllMatches(files, matchers, any: true); + } + + /// + public string? CheckFilePath(string path) + { + var matchers = new List + { + new(new FilePathMatch("GameOrbit.dll"), "Ubisoft Orbit"), + new(new FilePathMatch("ubiorbitapi_r2_loader.dll"), "Ubisoft Orbit"), + }; + + return MatchUtil.GetFirstMatch(path, matchers, any: true); + } + } +} diff --git a/BinaryObjectScanner/Protection/Uplay.cs b/BinaryObjectScanner/Protection/Uplay.cs index f1fa4d2c..9994845b 100644 --- a/BinaryObjectScanner/Protection/Uplay.cs +++ b/BinaryObjectScanner/Protection/Uplay.cs @@ -6,7 +6,9 @@ using SabreTools.Serialization.Wrappers; namespace BinaryObjectScanner.Protection { - // Got renamed to Ubisoft Connect / Ubisoft Game Launcher + /// + /// Got renamed to Ubisoft Connect / Ubisoft Game Launcher + /// public class Uplay : IExecutableCheck, IPathCheck { /// diff --git a/README.md b/README.md index 847ff79c..74008a1b 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ Below is a list of protections detected by BinaryObjectScanner. The two columns | Themida/WinLicense/Code Virtualizer | True | False | Only certain products/versions currently detected | | ~~Tivola Ring Protection~~ | False | True | Existing checks found to actually be indicators of copy-X, rather than some Tivola-specific ring protection. | | TZCopyProtection | False | True | Partially unconfirmed² | +| Ubisoft Orbit | False | True | | | Uniloc SoftAnchor | True | True | Version finding is not implemented | | Uplay | True | True | | | Windows Media Data Session DRM | True | True | |