diff --git a/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs b/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs
index 5ce3ca08..9d09d34d 100644
--- a/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs
+++ b/BurnOutSharp/ProtectionType/CenegaProtectDVD.cs
@@ -1,4 +1,5 @@
-using System.Collections.Concurrent;
+using System;
+using System.Collections.Concurrent;
using System.Collections.Generic;
using BurnOutSharp.Interfaces;
using BurnOutSharp.Matching;
@@ -9,6 +10,7 @@ namespace BurnOutSharp.ProtectionType
///
/// Cenega ProtectDVD is a protection seemingly created by the publisher Cenega for use with their games.
/// Games using this protection aren't able to be run from an ISO file, and presumably use DMI as a protection feature.
+ ///
///
public class CengaProtectDVD : IPathCheck, IPortableExecutableCheck
{
@@ -20,12 +22,21 @@ namespace BurnOutSharp.ProtectionType
if (sections == null)
return null;
- // Get the .cenega section, if it exists. Seems to be found in the protected game executable (Redump entry 31422).
+ // Get the export directory table
+ if (pex.ExportTable?.ExportDirectoryTable != null)
+ {
+ // Found in "cenega.dll" in IA item "speed-pack".
+ bool match = pex.ExportTable.ExportDirectoryTable.Name?.Equals("ProtectDVD.dll", StringComparison.OrdinalIgnoreCase) == true;
+ if (match)
+ return "Cenega ProtectDVD";
+ }
+
+ // Get the .cenega section, if it exists. Seems to be found in the protected game executable ("game.exe" in Redump entry 31422 and "Classic Car Racing.exe" in IA item "speed-pack").
bool cenegaSection = pex.ContainsSection(".cenega", exact: true);
if (cenegaSection)
return "Cenega ProtectDVD";
- // Get the .cenega0 through .cenega2 sections, if they exists. Found in cenega.dll (Redump entry 31422).
+ // Get the .cenega0 through .cenega2 sections, if they exists. Found in "cenega.dll" in Redump entry 31422 and IA item "speed-pack".
cenegaSection = pex.ContainsSection(".cenega0", exact: true);
if (cenegaSection)
return "Cenega ProtectDVD";
@@ -47,7 +58,7 @@ namespace BurnOutSharp.ProtectionType
var matchers = new List
{
// Seems likely to be present in most, if not all discs protected with Cenega ProtectDVD, but unable to confirm due to only having a small sample size.
- // References the existence of a "ProtectDVD.dll", which has not yet been located (Redump entry 31422).
+ // Found in Redump entry 31422 and IA item "speed-pack".
new PathMatchSet(new PathMatch("cenega.dll", useEndsWith: true), "Cenega ProtectDVD"),
};
@@ -60,7 +71,7 @@ namespace BurnOutSharp.ProtectionType
var matchers = new List
{
// Seems likely to be present in most, if not all discs protected with Cenega ProtectDVD, but unable to confirm due to only having a small sample size.
- // References the existence of a "ProtectDVD.dll", which has not yet been located (Redump entry 31422).
+ // Found in Redump entry 31422 and IA item "speed-pack".
new PathMatchSet(new PathMatch("cenega.dll", useEndsWith: true), "Cenega ProtectDVD"),
};