diff --git a/BurnOutSharp/ProtectionType/MGIRegistration.cs b/BurnOutSharp/ProtectionType/MGIRegistration.cs new file mode 100644 index 00000000..e77876ba --- /dev/null +++ b/BurnOutSharp/ProtectionType/MGIRegistration.cs @@ -0,0 +1,25 @@ +using System.Linq; +using BurnOutSharp.Interfaces; +using BurnOutSharp.Wrappers; + +namespace BurnOutSharp.ProtectionType +{ + public class MGIRegistration : IPortableExecutableCheck + { + /// + public string CheckPortableExecutable(string file, PortableExecutable pex, bool includeDebug) + { + // Get the sections from the executable, if possible + var sections = pex?.SectionTable; + if (sections == null) + return null; + + // Found in "Register.dll" from "VideoWaveIII" in IA item "mgi-videowave-iii-version-3.00-mgi-software-2000". + var resources = pex.FindStringTableByEntry("MGI Registration"); + if (resources.Any()) + return "MGI Registration"; + + return null; + } + } +} diff --git a/README.md b/README.md index 3a52afc6..e6bacc5e 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ Below is a list of protections detected by BurnOutSharp. The two columns explain | LaserLok | True | True | | | MediaCloQ | True | True | | | MediaMax CD3 | True | True | | +| MGI Registration | True | False | | | nProtect GameGuard | True | True | | | nProtect KeyCrypt | True | True | | | OpenMG | True | True | |