diff --git a/BurnOutSharp/ProtectionType/HexaLock.cs b/BurnOutSharp/ProtectionType/HexaLock.cs
new file mode 100644
index 00000000..daa52f3c
--- /dev/null
+++ b/BurnOutSharp/ProtectionType/HexaLock.cs
@@ -0,0 +1,82 @@
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using BurnOutSharp.Interfaces;
+using BurnOutSharp.Matching;
+
+namespace BurnOutSharp.ProtectionType
+{
+ ///
+ /// HexaLock AutoLock was a copy protection scheme that requied users to buy so-called "CD-RX" media that contained a special session pre-burned to it in order to burn their protect media.
+ /// Sales page for CD-RX media: http://www.image-src.com/services/hexalock.asp
+ /// It also allowed you to protect multimedia documents, such as documents or pictures.
+ /// The official website is now dead, but there are a few archives made (https://web.archive.org/web/20110904233743/http://hexalock.co.il/).
+ /// There don't appear to be any archives of the "CD-RX" media available, though it appears that some are still for sale on Amazon:
+ /// https://www.amazon.cn/dp/B000F3RPCI + https://www.amazon.cn/dp/B000F3PJA8
+ /// It appears that some versions of "Operation Flashpoint" contain HexaLock AutoLock (Source: https://www.cdmediaworld.com/hardware/cdrom/cd_protections_hexalock.shtml).
+ /// HexaLock AutoLock 4.5 official download archive: https://web.archive.org/web/20070228235538/http://hexalock.com:80/45/alw_45_march_3_2006.exe
+ /// HexaLock AutoLock 4.7 official download archive: https://web.archive.org/web/20140801060304/http://hexalock.co.il/downloads/files/Psetup.exe
+ /// There appears to be another form of copy protection created by HexaLock called HexDVDR, but I have not been able to find a copy of it preserved (Source: https://web.archive.org/web/20140801060150/http://hexalock.co.il/news/2008-03-20/).
+ /// There is an example EXE protected using HexDVDR provided that is still online (https://web.archive.org/web/20140802144000/http://hexalock.co.il/downloads/files/Protected%20Img.zip).
+ ///
+ public class HexalockAutoLock : IPathCheck
+ {
+ ///
+ public ConcurrentQueue CheckDirectoryPath(string path, IEnumerable files)
+ {
+ var matchers = new List
+ {
+ // "Start_Here.exe" is the default named used in HexaLock AutoLock 4.5.
+ new PathMatchSet(new List
+ {
+ new PathMatch("Start_Here.exe", useEndsWith: true),
+ new PathMatch("MFINT.DLL", useEndsWith: true),
+ new PathMatch("MFIMP.DLL", useEndsWith: true),
+ }, "Hexalock AutoLock 4.5"),
+
+ // Used for PDF protection in HexaLock AutoLock 4.7. "Start.exe" likely has some internal strings that can be checked.
+ new PathMatchSet(new List
+ {
+ new PathMatch("kleft.ipf", useEndsWith: true),
+ new PathMatch("ReadPFile.exe", useEndsWith: true),
+ new PathMatch("Start.exe", useEndsWith: true),
+ }, "HexaLock AutoLock 4.7 PDF DRM"),
+
+ // Should be present in all known versions.
+ new PathMatchSet(new List
+ {
+ new PathMatch("MFINT.DLL", useEndsWith: true),
+ new PathMatch("MFIMP.DLL", useEndsWith: true),
+ }, "HexaLock AutoLock"),
+
+ // Currently unverified.
+ new PathMatchSet(new PathMatch("HCPSMng.exe", useEndsWith: true), "HexaLock AutoLock"),
+
+ };
+
+ return MatchUtil.GetAllMatches(files, matchers, any: true);
+ }
+
+ ///
+ public string CheckFilePath(string path)
+ {
+ var matchers = new List
+ {
+ // Found to be the default named used in HexaLock AutoLock 4.5.
+ new PathMatchSet(new PathMatch("Start_Here.exe", useEndsWith: true), "HexaLock AutoLock 4.5"),
+
+ // Found to be contained in HexaLock AutoLock 4.5 and 4.7.
+ new PathMatchSet(new PathMatch("MFINT.DLL", useEndsWith: true), "HexaLock AutoLock"),
+ new PathMatchSet(new PathMatch("MFIMP.DLL", useEndsWith: true), "HexaLock AutoLock"),
+
+ // Used for PDF protection in HexaLock AutoLock 4.7.
+ new PathMatchSet(new PathMatch("kleft.ipf", useEndsWith: true), "HexaLock AutoLock 4.7 PDF DRM"),
+ new PathMatchSet(new PathMatch("ReadPFile.exe", useEndsWith: true), "HexaLock AutoLock 4.7 PDF DRM"),
+
+ // Currently unverified.
+ new PathMatchSet(new PathMatch("HCPSMng.exe", useEndsWith: true), "HexaLock AutoLock"),
+ };
+
+ return MatchUtil.GetFirstMatch(path, matchers, any: true);
+ }
+ }
+}
diff --git a/BurnOutSharp/ProtectionType/HexalockAutoLock.cs b/BurnOutSharp/ProtectionType/HexalockAutoLock.cs
deleted file mode 100644
index 14e1aa7f..00000000
--- a/BurnOutSharp/ProtectionType/HexalockAutoLock.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using BurnOutSharp.Interfaces;
-using BurnOutSharp.Matching;
-
-namespace BurnOutSharp.ProtectionType
-{
- public class HexalockAutoLock : IPathCheck
- {
- ///
- public ConcurrentQueue CheckDirectoryPath(string path, IEnumerable files)
- {
- // TODO: Verify if these are OR or AND
- var matchers = new List
- {
- new PathMatchSet(new PathMatch("Start_Here.exe", useEndsWith: true), "Hexalock AutoLock"),
- new PathMatchSet(new PathMatch("HCPSMng.exe", useEndsWith: true), "Hexalock AutoLock"),
- new PathMatchSet(new PathMatch("MFINT.DLL", useEndsWith: true), "Hexalock AutoLock"),
- new PathMatchSet(new PathMatch("MFIMP.DLL", useEndsWith: true), "Hexalock AutoLock"),
- };
-
- return MatchUtil.GetAllMatches(files, matchers, any: true);
- }
-
- ///
- public string CheckFilePath(string path)
- {
- var matchers = new List
- {
- new PathMatchSet(new PathMatch("Start_Here.exe", useEndsWith: true), "Hexalock AutoLock"),
- new PathMatchSet(new PathMatch("HCPSMng.exe", useEndsWith: true), "Hexalock AutoLock"),
- new PathMatchSet(new PathMatch("MFINT.DLL", useEndsWith: true), "Hexalock AutoLock"),
- new PathMatchSet(new PathMatch("MFIMP.DLL", useEndsWith: true), "Hexalock AutoLock"),
- };
-
- return MatchUtil.GetFirstMatch(path, matchers, any: true);
- }
- }
-}
diff --git a/README.md b/README.md
index 1f3989e8..1f3692fe 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,7 @@ Below is a list of protections detected by BurnOutSharp. The two columns explain
| Executable-Based Online Registration | True | False | Possibly too broad |
| Freelock | False | True | Unconfirmed¹ |
| Games for Windows - Live | True | True | |
-| Hexalock Autolock | False | True | Unconfirmed¹ |
+| Hexalock Autolock | False | True | Partially unconfirmed² |
| Impulse Reactor / Stardock Product Activation | True | True | |
| IndyVCD | False | True | Unconfirmed¹ |
| ITENIUM Trial & Buy Protection | True | False | |