Convert one Impulse Reactor check

This commit is contained in:
Matt Nadareski
2022-12-08 15:24:53 -08:00
parent b230462860
commit 4fab4e71f7

View File

@@ -1,5 +1,6 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using BurnOutSharp.Interfaces;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
@@ -31,20 +32,15 @@ namespace BurnOutSharp.ProtectionType
if (name?.Contains("ReactorActivate.exe") == true)
return $"Stardock Product Activation {Utilities.GetInternalVersion(pex)}";
// TODO: Check for CVP* instead?
bool containsCheck = pex.ExportNameTable?.Any(s => s.StartsWith("CVPInitializeClient")) ?? false;
// Get the .rdata section, if it exists
if (pex.ContainsSection(".rdata"))
{
// CVPInitializeClient
byte?[] check = new byte?[]
{
0x43, 0x56, 0x50, 0x49, 0x6E, 0x69, 0x74, 0x69,
0x61, 0x6C, 0x69, 0x7A, 0x65, 0x43, 0x6C, 0x69,
0x65, 0x6E, 0x74
};
bool containsCheck = pex.GetFirstSectionData(".rdata").FirstPosition(check, out int position);
// TODO: Find what resource this is in
// A + (char)0x00 + T + (char)0x00 + T + (char)0x00 + L + (char)0x00 + I + (char)0x00 + S + (char)0x00 + T + (char)0x00 + (char)0x00 + (char)0x00 + E + (char)0x00 + L + (char)0x00 + E + (char)0x00 + M + (char)0x00 + E + (char)0x00 + N + (char)0x00 + T + (char)0x00 + (char)0x00 + (char)0x00 + N + (char)0x00 + O + (char)0x00 + T + (char)0x00 + A + (char)0x00 + T + (char)0x00 + I + (char)0x00 + O + (char)0x00 + N + (char)0x00
// ATTLIST\0ELEMENT\0NOTATION
byte?[] check2 = new byte?[]
{
0x41, 0x00, 0x54, 0x00, 0x54, 0x00, 0x4C, 0x00,
@@ -59,7 +55,7 @@ namespace BurnOutSharp.ProtectionType
if (containsCheck && containsCheck2)
return $"Impulse Reactor Core Module {Utilities.GetInternalVersion(pex)}" + (includeDebug ? $" (Index {position}, {position2})" : string.Empty);
else if (containsCheck && !containsCheck2)
return $"Impulse Reactor" + (includeDebug ? $" (Index {position})" : string.Empty);
return $"Impulse Reactor";
}
return null;