mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-07-19 07:15:10 +00:00
Get rid of code duplication
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -19,20 +18,20 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
string name = pex.FileDescription;
|
||||
if (name?.Contains("EReg MFC Application") == true)
|
||||
return $"EA CdKey Registration Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"EA CdKey Registration Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (name?.Contains("Registration code installer program") == true)
|
||||
return $"EA CdKey Registration Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"EA CdKey Registration Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (name?.Equals("EA DRM Helper", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"EA DRM Protection {Utilities.GetInternalVersion(pex)}";
|
||||
return $"EA DRM Protection {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
name = pex.InternalName;
|
||||
if (name?.Equals("CDCode", StringComparison.Ordinal) == true)
|
||||
return $"EA CdKey Registration Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"EA CdKey Registration Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
if (pex.FindDialogByTitle("About CDKey").Any())
|
||||
return $"EA CdKey Registration Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"EA CdKey Registration Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (pex.FindGenericResource("About CDKey").Any())
|
||||
return $"EA CdKey Registration Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"EA CdKey Registration Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// Get the .data/DATA section strings, if they exist
|
||||
List<string> strs = pex.GetFirstSectionStrings(".data") ?? pex.GetFirstSectionStrings("DATA");
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -21,9 +20,9 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
string name = pex.FileDescription;
|
||||
if (name?.StartsWith("Games for Windows - LIVE Zero Day Piracy Protection", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"Games for Windows LIVE - Zero Day Piracy Protection Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Games for Windows LIVE - Zero Day Piracy Protection Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (name?.StartsWith("Games for Windows", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"Games for Windows LIVE {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Games for Windows LIVE {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// Get the import directory table
|
||||
if (pex.ImportTable?.ImportDirectoryTable != null)
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -22,15 +21,15 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
string name = pex.FileDescription;
|
||||
if (name?.Contains("ImpulseReactor Dynamic Link Library") == true)
|
||||
return $"Impulse Reactor Core Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Impulse Reactor Core Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
name = pex.ProductName;
|
||||
if (name?.Contains("ImpulseReactor Dynamic Link Library") == true)
|
||||
return $"Impulse Reactor Core Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Impulse Reactor Core Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
name = pex.OriginalFilename;
|
||||
if (name?.Contains("ReactorActivate.exe") == true)
|
||||
return $"Stardock Product Activation {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Stardock Product Activation {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// TODO: Check for CVP* instead?
|
||||
bool containsCheck = pex.ExportNameTable?.Any(s => s.StartsWith("CVPInitializeClient")) ?? false;
|
||||
@@ -46,7 +45,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
}
|
||||
|
||||
if (containsCheck && containsCheck2)
|
||||
return $"Impulse Reactor Core Module {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Impulse Reactor Core Module {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (containsCheck && !containsCheck2)
|
||||
return $"Impulse Reactor";
|
||||
|
||||
@@ -58,8 +57,8 @@ namespace BurnOutSharp.ProtectionType
|
||||
{
|
||||
var matchers = new List<PathMatchSet>
|
||||
{
|
||||
new PathMatchSet(new PathMatch("ImpulseReactor.dll", useEndsWith: true), Utilities.GetInternalVersion, "Impulse Reactor Core Module"),
|
||||
new PathMatchSet(new PathMatch("ReactorActivate.exe", useEndsWith: true), Utilities.GetInternalVersion, "Stardock Product Activation"),
|
||||
new PathMatchSet(new PathMatch("ImpulseReactor.dll", useEndsWith: true), Tools.Utilities.GetInternalVersion, "Impulse Reactor Core Module"),
|
||||
new PathMatchSet(new PathMatch("ReactorActivate.exe", useEndsWith: true), Tools.Utilities.GetInternalVersion, "Stardock Product Activation"),
|
||||
};
|
||||
|
||||
return MatchUtil.GetAllMatches(files, matchers, any: true);
|
||||
@@ -70,8 +69,8 @@ namespace BurnOutSharp.ProtectionType
|
||||
{
|
||||
var matchers = new List<PathMatchSet>
|
||||
{
|
||||
new PathMatchSet(new PathMatch("ImpulseReactor.dll", useEndsWith: true), Utilities.GetInternalVersion, "Impulse Reactor Core Module"),
|
||||
new PathMatchSet(new PathMatch("ReactorActivate.exe", useEndsWith: true), Utilities.GetInternalVersion, "Stardock Product Activation"),
|
||||
new PathMatchSet(new PathMatch("ImpulseReactor.dll", useEndsWith: true), Tools.Utilities.GetInternalVersion, "Impulse Reactor Core Module"),
|
||||
new PathMatchSet(new PathMatch("ReactorActivate.exe", useEndsWith: true), Tools.Utilities.GetInternalVersion, "Stardock Product Activation"),
|
||||
};
|
||||
|
||||
return MatchUtil.GetFirstMatch(path, matchers, any: true);
|
||||
|
||||
@@ -4,8 +4,9 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Utilities;
|
||||
using BurnOutSharp.Wrappers;
|
||||
using static BurnOutSharp.Utilities.Hashing;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
{
|
||||
@@ -378,7 +379,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
return string.Empty;
|
||||
|
||||
// The hash of the file CLCD16.dll is able to provide a broad version range that appears to be consistent, but it seems it was rarely updated so these checks are quite broad.
|
||||
string sha1 = Utilities.GetFileSHA1(firstMatchedString);
|
||||
string sha1 = GetFileSHA1(firstMatchedString);
|
||||
switch (sha1)
|
||||
{
|
||||
// Found in Redump entries 61731 and 66005.
|
||||
@@ -402,7 +403,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
return string.Empty;
|
||||
|
||||
// The hash of the file CLCD32.dll so far appears to be a solid indicator of version for versions it was used with. It appears to have been updated with every release, unlike it's counterpart, CLCD16.dll.
|
||||
string sha1 = Utilities.GetFileSHA1(firstMatchedString);
|
||||
string sha1 = GetFileSHA1(firstMatchedString);
|
||||
switch (sha1)
|
||||
{
|
||||
// Found in Redump entry 66005.
|
||||
@@ -502,7 +503,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
|
||||
// The hash of every "CLOKSPL.EXE" correlates directly to a specific SafeDisc version.
|
||||
string sha1 = Utilities.GetFileSHA1(firstMatchedString);
|
||||
string sha1 = GetFileSHA1(firstMatchedString);
|
||||
switch (sha1)
|
||||
{
|
||||
// Found in Redump entry 66005.
|
||||
@@ -650,7 +651,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
// There are occasionaly inconsistencies, even within the well detected version range. This seems to me to mostly happen with later (3.20+) games, and seems to me to be an example of the SafeDisc distribution becoming more disorganized with time.
|
||||
// Particularly interesting inconsistencies will be noted below:
|
||||
// Redump entry 73786 has an EXE with a scrubbed version, a DIAG.exe with a version of 4.60.000, and a copy of drvmgt.dll belonging to version 3.10.020. This seems like an accidental(?) distribution of older drivers, as this game was released 3 years after the use of 3.10.020.
|
||||
string sha1 = Utilities.GetFileSHA1(firstMatchedString);
|
||||
string sha1 = GetFileSHA1(firstMatchedString);
|
||||
switch (sha1)
|
||||
{
|
||||
// Found in Redump entries 29073 and 31149.
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Utilities;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -18,7 +17,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
// TODO: Is this too broad in general?
|
||||
string name = pex.InternalName;
|
||||
if (name?.StartsWith("EReg", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"Executable-Based Online Registration {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Executable-Based Online Registration {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -23,15 +22,15 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
string name = pex.FileDescription;
|
||||
if (name?.Contains("SecuROM PA") == true)
|
||||
return $"SecuROM Product Activation v{Utilities.GetInternalVersion(pex)}";
|
||||
return $"SecuROM Product Activation v{Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
name = pex.OriginalFilename;
|
||||
if (name?.Equals("paul_dll_activate_and_play.dll") == true)
|
||||
return $"SecuROM Product Activation v{Utilities.GetInternalVersion(pex)}";
|
||||
return $"SecuROM Product Activation v{Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
name = pex.ProductName;
|
||||
if (name?.Contains("SecuROM Activate & Play") == true)
|
||||
return $"SecuROM Product Activation v{Utilities.GetInternalVersion(pex)}";
|
||||
return $"SecuROM Product Activation v{Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// Get the matrosch section, if it exists
|
||||
bool matroschSection = pex.ContainsSection("matrosch", exact: true);
|
||||
|
||||
@@ -5,7 +5,6 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -26,10 +25,10 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
string name = pex.FileDescription;
|
||||
if (name?.StartsWith("DVM Library", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"SolidShield {Utilities.GetInternalVersion(pex)}";
|
||||
return $"SolidShield {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
else if (name?.StartsWith("Solidshield Activation Library", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"SolidShield Core.dll {Utilities.GetInternalVersion(pex)}";
|
||||
return $"SolidShield Core.dll {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
else if (name?.StartsWith("Activation Manager", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"SolidShield Activation Manager Module {GetInternalVersion(pex)}";
|
||||
@@ -40,10 +39,10 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
name = pex.ProductName;
|
||||
if (name?.StartsWith("Solidshield Activation Library", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"SolidShield Core.dll {Utilities.GetInternalVersion(pex)}";
|
||||
return $"SolidShield Core.dll {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
else if (name?.StartsWith("Solidshield Library", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"SolidShield Core.dll {Utilities.GetInternalVersion(pex)}";
|
||||
return $"SolidShield Core.dll {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
else if (name?.StartsWith("Activation Manager", StringComparison.OrdinalIgnoreCase) == true)
|
||||
return $"SolidShield Activation Manager Module {GetInternalVersion(pex)}";
|
||||
@@ -195,7 +194,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
{
|
||||
string companyName = pex.CompanyName?.ToLowerInvariant();
|
||||
if (!string.IsNullOrWhiteSpace(companyName) && (companyName.Contains("solidshield") || companyName.Contains("tages")))
|
||||
return Utilities.GetInternalVersion(pex);
|
||||
return Tools.Utilities.GetInternalVersion(pex);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -28,36 +27,36 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
string name = pex.LegalCopyright;
|
||||
if (name?.StartsWith("(c) Protection Technology") == true) // (c) Protection Technology (StarForce)?
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (name?.Contains("Protection Technology") == true) // Protection Technology (StarForce)?
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// TODO: Decide if internal name checks are safe to use.
|
||||
name = pex.InternalName;
|
||||
|
||||
// Found in "protect.x64" and "protect.x86" in Redump entry 94805.
|
||||
if (name?.Equals("CORE.ADMIN", StringComparison.Ordinal) == true)
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
|
||||
// These checks currently disabled due being possibly too generic:
|
||||
// Found in "protect.dll" in Redump entry 94805.
|
||||
// if (name?.Equals("CORE.DLL", StringComparison.Ordinal) == true)
|
||||
// return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
// return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
//
|
||||
// Found in "protect.exe" in Redump entry 94805.
|
||||
// if (name?.Equals("CORE.EXE", StringComparison.Ordinal) == true)
|
||||
// return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
// return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
//
|
||||
// else if (name?.Equals("protect.exe", StringComparison.Ordinal) == true)
|
||||
// return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
// return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// Check the export name table
|
||||
if (pex.ExportNameTable != null)
|
||||
{
|
||||
// TODO: Should we just check for "PSA_*" instead of a single entry?
|
||||
if (pex.ExportNameTable.Any(s => s == "PSA_GetDiscLabel"))
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
}
|
||||
|
||||
// TODO: Find what fvinfo field actually maps to this
|
||||
@@ -70,15 +69,15 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
// Found in "protect.exe" in Redump entry 94805.
|
||||
if (name?.Contains("FrontLine Protection GUI Application") == true)
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// Found in "protect.dll" in Redump entry 94805.
|
||||
if (name?.Contains("FrontLine Protection Library") == true)
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// Found in "protect.x64" and "protect.x86" in Redump entry 94805.
|
||||
if (name?.Contains("FrontLine Helper") == true)
|
||||
return $"StarForce {Utilities.GetInternalVersion(pex)}";
|
||||
return $"StarForce {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
|
||||
// TODO: Find a sample of this check.
|
||||
if (name?.Contains("Protected Module") == true)
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -23,7 +22,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client API"))
|
||||
return "Steam";
|
||||
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client Engine"))
|
||||
return $"Steam Client Engine {Utilities.GetInternalVersion(pex)}";
|
||||
return $"Steam Client Engine {Tools.Utilities.GetInternalVersion(pex)}";
|
||||
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client Service"))
|
||||
return "Steam";
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -214,7 +213,7 @@ namespace BurnOutSharp.ProtectionType
|
||||
private string GetVersion(PortableExecutable pex)
|
||||
{
|
||||
// Check the internal versions
|
||||
string version = Utilities.GetInternalVersion(pex);
|
||||
string version = Tools.Utilities.GetInternalVersion(pex);
|
||||
if (!string.IsNullOrEmpty(version))
|
||||
return version;
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BurnOutSharp.Interfaces;
|
||||
using BurnOutSharp.Matching;
|
||||
using BurnOutSharp.Tools;
|
||||
using BurnOutSharp.Wrappers;
|
||||
|
||||
namespace BurnOutSharp.ProtectionType
|
||||
@@ -44,37 +42,37 @@ namespace BurnOutSharp.ProtectionType
|
||||
|
||||
// Found in "GameGuard.des" in Redump entry 90526 and 99598.
|
||||
if (name?.Contains("nProtect GameGuard Launcher") == true)
|
||||
return $"nProtect GameGuard ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect GameGuard ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
// Found in "npkcrypt.dll" in Redump entry 90526.
|
||||
if (name?.Contains("nProtect KeyCrypt Driver Support Dll") == true)
|
||||
return $"nProtect KeyCrypt ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect KeyCrypt ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
// Found in "npkcrypt.sys" and "npkcusb.sys" in Redump entry 90526.
|
||||
if (name?.Contains("nProtect KeyCrypt Driver") == true)
|
||||
return $"nProtect KeyCrypt ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect KeyCrypt ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
// Found in "npkpdb.dll" in Redump entry 90526.
|
||||
if (name?.Contains("nProtect KeyCrypt Program Database DLL") == true)
|
||||
return $"nProtect KeyCrypt ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect KeyCrypt ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
name = pex.ProductName;
|
||||
|
||||
// Found in "GameGuard.des" in Redump entry 90526 and 99598.
|
||||
if (name?.Contains("nProtect GameGuard Launcher") == true)
|
||||
return $"nProtect GameGuard ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect GameGuard ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
// Found in "npkcrypt.dll" in Redump entry 90526.
|
||||
if (name?.Contains("nProtect KeyCrypt Driver Support Dll") == true)
|
||||
return $"nProtect KeyCrypt ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect KeyCrypt ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
// Found in "npkcrypt.sys" and "npkcusb.sys" in Redump entry 90526.
|
||||
if (name?.Contains("nProtect KeyCrypt Driver") == true)
|
||||
return $"nProtect KeyCrypt ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect KeyCrypt ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
// Found in "npkpdb.dll" in Redump entry 90526.
|
||||
if (name?.Contains("nProtect KeyCrypt Program Database DLL") == true)
|
||||
return $"nProtect KeyCrypt ({Utilities.GetInternalVersion(pex)})";
|
||||
return $"nProtect KeyCrypt ({Tools.Utilities.GetInternalVersion(pex)})";
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user