mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-09-22 14:54:56 +00:00
Convert one Impulse Reactor check
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user