diff --git a/.gitignore b/.gitignore
index 97e8fe8..cc9e024 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,24 @@
/Win8.1Debug/Hidden Package
/Win7Debug
/Win8.1Debug
+/x64
+/Debug
+/Release
/*.suo
/*.sdf
/*.opensdf
+*.user
+/Hidden Package/Win8.1Release
+/Hidden/Win8.1Release
+/Hidden/x64/Win7Debug
+/Hidden Package/x64/Win7Debug
+/HiddenCLI/Debug
+/HiddenCLI/Release
+/HiddenLib/Debug
+/HiddenLib/Release
+/HiddenLib/x64/Debug
+/HiddenTests/Debug
+/HiddenTests/Release
+/HiddenTests/x64/Debug
+/Win8.1Release
+/HiddenTests/*.idc
diff --git a/Hidden Package/Hidden Package.vcxproj b/Hidden Package/Hidden Package.vcxproj
index 0cad0d7..c5236c4 100644
--- a/Hidden Package/Hidden Package.vcxproj
+++ b/Hidden Package/Hidden Package.vcxproj
@@ -325,6 +325,11 @@
true
+
+
+ true
+
+
diff --git a/Hidden.sln b/Hidden.sln
index 5cbeff8..453b8e7 100644
--- a/Hidden.sln
+++ b/Hidden.sln
@@ -45,13 +45,15 @@ Global
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|Win32.ActiveCfg = Win8.1 Debug|Win32
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|Win32.Build.0 = Win8.1 Debug|Win32
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|Win32.Deploy.0 = Win8.1 Debug|Win32
- {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|x64.ActiveCfg = Win8.1 Debug|x64
- {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|x64.Build.0 = Win8.1 Debug|x64
+ {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|x64.ActiveCfg = Win8 Debug|x64
+ {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|x64.Build.0 = Win8 Debug|x64
+ {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Debug|x64.Deploy.0 = Win8 Debug|x64
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|Win32.ActiveCfg = Win8.1 Release|Win32
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|Win32.Build.0 = Win8.1 Release|Win32
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|Win32.Deploy.0 = Win8.1 Release|Win32
- {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|x64.ActiveCfg = Win8.1 Release|x64
- {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|x64.Build.0 = Win8.1 Release|x64
+ {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|x64.ActiveCfg = Win8 Release|x64
+ {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|x64.Build.0 = Win8 Release|x64
+ {3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Release|x64.Deploy.0 = Win8 Release|x64
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32
{3E4BBCD0-DC35-4825-9A8D-8686CDFAA6A8}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32
@@ -91,13 +93,15 @@ Global
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|Win32.ActiveCfg = Win8.1 Debug|Win32
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|Win32.Build.0 = Win8.1 Debug|Win32
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|Win32.Deploy.0 = Win8.1 Debug|Win32
- {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|x64.ActiveCfg = Win8.1 Debug|x64
- {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|x64.Build.0 = Win8.1 Debug|x64
+ {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|x64.ActiveCfg = Win8 Debug|x64
+ {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|x64.Build.0 = Win8 Debug|x64
+ {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Debug|x64.Deploy.0 = Win8 Debug|x64
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|Win32.ActiveCfg = Win8.1 Release|Win32
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|Win32.Build.0 = Win8.1 Release|Win32
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|Win32.Deploy.0 = Win8.1 Release|Win32
- {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|x64.ActiveCfg = Win8.1 Release|x64
- {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|x64.Build.0 = Win8.1 Release|x64
+ {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|x64.ActiveCfg = Win8 Release|x64
+ {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|x64.Build.0 = Win8 Release|x64
+ {D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Release|x64.Deploy.0 = Win8 Release|x64
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32
{D6C8BE8B-D2E2-40BA-ADAC-E23FD8062E93}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32
@@ -137,91 +141,139 @@ Global
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|Win32.ActiveCfg = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|Win32.Build.0 = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|Win32.Deploy.0 = Debug|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|x64.ActiveCfg = Debug|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|x64.ActiveCfg = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|x64.Build.0 = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Debug|x64.Deploy.0 = Debug|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|Win32.ActiveCfg = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|Win32.Build.0 = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|Win32.Deploy.0 = Release|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|x64.ActiveCfg = Release|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|x64.ActiveCfg = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|x64.Build.0 = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Release|x64.Deploy.0 = Release|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|Win32.ActiveCfg = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|Win32.Build.0 = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|Win32.Deploy.0 = Debug|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|x64.ActiveCfg = Debug|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|x64.ActiveCfg = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|x64.Build.0 = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Debug|x64.Deploy.0 = Debug|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|Win32.ActiveCfg = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|Win32.Build.0 = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|Win32.Deploy.0 = Release|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|x64.ActiveCfg = Release|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|x64.ActiveCfg = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|x64.Build.0 = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win7 Release|x64.Deploy.0 = Release|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|Win32.ActiveCfg = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|Win32.Build.0 = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|Win32.Deploy.0 = Debug|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|x64.ActiveCfg = Debug|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|x64.ActiveCfg = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|x64.Build.0 = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Debug|x64.Deploy.0 = Debug|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|Win32.ActiveCfg = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|Win32.Build.0 = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|Win32.Deploy.0 = Release|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|x64.ActiveCfg = Release|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|x64.ActiveCfg = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|x64.Build.0 = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8 Release|x64.Deploy.0 = Release|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|Win32.ActiveCfg = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|Win32.Build.0 = Debug|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|Win32.Deploy.0 = Debug|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|x64.ActiveCfg = Debug|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|x64.ActiveCfg = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|x64.Build.0 = Debug|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Debug|x64.Deploy.0 = Debug|x64
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|Win32.ActiveCfg = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|Win32.Build.0 = Release|Win32
{EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|Win32.Deploy.0 = Release|Win32
- {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|x64.ActiveCfg = Release|Win32
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|x64.ActiveCfg = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|x64.Build.0 = Release|x64
+ {EFECF76B-C3A8-4444-9314-70F72A0A48D8}.Win8.1 Release|x64.Deploy.0 = Release|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|Win32.ActiveCfg = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|Win32.Build.0 = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|Win32.Deploy.0 = Debug|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|x64.ActiveCfg = Debug|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|x64.ActiveCfg = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|x64.Build.0 = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Debug|x64.Deploy.0 = Debug|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|Win32.ActiveCfg = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|Win32.Build.0 = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|Win32.Deploy.0 = Release|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|x64.ActiveCfg = Release|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|x64.ActiveCfg = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|x64.Build.0 = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Release|x64.Deploy.0 = Release|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|Win32.ActiveCfg = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|Win32.Build.0 = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|Win32.Deploy.0 = Debug|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|x64.ActiveCfg = Debug|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|x64.ActiveCfg = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|x64.Build.0 = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Debug|x64.Deploy.0 = Debug|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|Win32.ActiveCfg = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|Win32.Build.0 = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|Win32.Deploy.0 = Release|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|x64.ActiveCfg = Release|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|x64.ActiveCfg = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|x64.Build.0 = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win7 Release|x64.Deploy.0 = Release|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|Win32.ActiveCfg = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|Win32.Build.0 = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|Win32.Deploy.0 = Debug|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|x64.ActiveCfg = Debug|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|x64.ActiveCfg = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|x64.Build.0 = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Debug|x64.Deploy.0 = Debug|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|Win32.ActiveCfg = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|Win32.Build.0 = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|Win32.Deploy.0 = Release|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|x64.ActiveCfg = Release|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|x64.ActiveCfg = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|x64.Build.0 = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8 Release|x64.Deploy.0 = Release|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|Win32.ActiveCfg = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|Win32.Build.0 = Debug|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|Win32.Deploy.0 = Debug|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|x64.ActiveCfg = Debug|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|x64.ActiveCfg = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|x64.Build.0 = Debug|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Debug|x64.Deploy.0 = Debug|x64
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|Win32.ActiveCfg = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|Win32.Build.0 = Release|Win32
{E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|Win32.Deploy.0 = Release|Win32
- {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|x64.ActiveCfg = Release|Win32
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|x64.ActiveCfg = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|x64.Build.0 = Release|x64
+ {E6A7AAAD-4877-4F05-A5A1-F42707895996}.Win8.1 Release|x64.Deploy.0 = Release|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Debug|Win32.ActiveCfg = Debug|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Debug|Win32.Build.0 = Debug|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Debug|x64.ActiveCfg = Debug|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Debug|x64.ActiveCfg = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Debug|x64.Build.0 = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Debug|x64.Deploy.0 = Debug|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Release|Win32.ActiveCfg = Release|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Release|Win32.Build.0 = Release|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Release|x64.ActiveCfg = Release|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Release|x64.ActiveCfg = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Release|x64.Build.0 = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Release|x64.Deploy.0 = Release|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Debug|Win32.ActiveCfg = Debug|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Debug|Win32.Build.0 = Debug|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Debug|x64.ActiveCfg = Debug|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Debug|x64.ActiveCfg = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Debug|x64.Build.0 = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Debug|x64.Deploy.0 = Debug|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Release|Win32.ActiveCfg = Release|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Release|Win32.Build.0 = Release|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Release|x64.ActiveCfg = Release|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Release|x64.ActiveCfg = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Release|x64.Build.0 = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win7 Release|x64.Deploy.0 = Release|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Debug|Win32.ActiveCfg = Debug|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Debug|Win32.Build.0 = Debug|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Debug|x64.ActiveCfg = Debug|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Debug|x64.ActiveCfg = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Debug|x64.Build.0 = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Debug|x64.Deploy.0 = Debug|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Release|Win32.ActiveCfg = Release|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Release|Win32.Build.0 = Release|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Release|x64.ActiveCfg = Release|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Release|x64.ActiveCfg = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Release|x64.Build.0 = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8 Release|x64.Deploy.0 = Release|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Debug|Win32.ActiveCfg = Debug|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Debug|Win32.Build.0 = Debug|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Debug|x64.ActiveCfg = Debug|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Debug|x64.ActiveCfg = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Debug|x64.Build.0 = Debug|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Debug|x64.Deploy.0 = Debug|x64
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Release|Win32.ActiveCfg = Release|Win32
{023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Release|Win32.Build.0 = Release|Win32
- {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Release|x64.ActiveCfg = Release|Win32
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Release|x64.ActiveCfg = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Release|x64.Build.0 = Release|x64
+ {023C63A1-726C-48D9-AA17-E62A7EFD862D}.Win8.1 Release|x64.Deploy.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Hidden/Hidden.vcxproj b/Hidden/Hidden.vcxproj
index c0a0e54..0ce236a 100644
--- a/Hidden/Hidden.vcxproj
+++ b/Hidden/Hidden.vcxproj
@@ -255,6 +255,7 @@
$(DDK_LIB_PATH)\fltmgr.lib;%(AdditionalDependencies)
+ /INTEGRITYCHECK %(AdditionalOptions)
diff --git a/Hidden/PsTable.c b/Hidden/PsTable.c
index 6894def..6a7967a 100644
--- a/Hidden/PsTable.c
+++ b/Hidden/PsTable.c
@@ -103,7 +103,7 @@ NTSTATUS InitializeProcessTable(VOID(*InitProcessEntryCallback)(PProcessTableEnt
{
PSYSTEM_PROCESS_INFORMATION processInfo = NULL, first;
NTSTATUS status;
- ULONG size = 0, offset;
+ SIZE_T size = 0, offset;
// Init process table
diff --git a/Hidden/todo.txt b/Hidden/todo.txt
index 40d0d46..dadce66 100644
--- a/Hidden/todo.txt
+++ b/Hidden/todo.txt
@@ -14,10 +14,10 @@
+ Реализовать интерфейс для File & Reg мониторов
+ Вынести Process Table в отдельный файл
+ Переименовать Process Tree в Process Table
-- Протестировать интерфейсы
++ Протестировать интерфейсы
+ Добавить в HiddenCLI загрузку excluded и protected процессов
+ Добавить проект HiddenTest
- - Реализовать тесты в проекте HiddenTest
+ + Реализовать тесты в проекте HiddenTest
+ FS monitor
+ Reg filter
+ Ps filter
@@ -27,10 +27,9 @@
+ delete value
+ query value
+ query multiple value
-- Почистить Exclude List
- + Добавить в Exclude List поддержку case insensetive crc32 (если возможно, например русские буквы) (*Нет необхлжимости)
- - Добавить в Exclude List для файлов такую же лексическую сортировку как и в реестру, возможно обьеденить ф-и
- - Переписать всё на основе AVL или других buildin generic trees
+- Переписать Exclude List на основе AVL или других buildin generic trees
+ - FS monitor
+ - Reg monitor
+ Реализовать конвертирование пути в пути драйвера
+ Ps monitor
+ FS filter
@@ -43,7 +42,7 @@
+ Реализовать usermode библиотеку для работы с IOCTL API
+ Слинковать с IOCTL API lib
- Реализовать HiddenCLI
-- Портировать драйвер под архитектуру x64
++ Портировать драйвер под архитектуру x64
- Залить проект на Git
+ Переименовать проект драйвера в Hidden
- Привести в порядок все версии билда Release, Debug, ...
diff --git a/HiddenCLI/HiddenCLI.vcxproj b/HiddenCLI/HiddenCLI.vcxproj
index 885ceaf..dd52d7d 100644
--- a/HiddenCLI/HiddenCLI.vcxproj
+++ b/HiddenCLI/HiddenCLI.vcxproj
@@ -5,10 +5,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
{E6A7AAAD-4877-4F05-A5A1-F42707895996}
@@ -22,6 +30,12 @@
v120
Unicode
+
+ Application
+ true
+ v120
+ Unicode
+
Application
false
@@ -29,22 +43,41 @@
true
Unicode
+
+ Application
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
true
+
+ true
+
false
+
+ false
+
@@ -61,6 +94,22 @@
$(SolutionDir)$(Configuration)\
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+ true
+ HiddenLib.lib;%(AdditionalDependencies)
+ $(SolutionDir)$(Configuration)\
+
+
Level3
@@ -81,6 +130,26 @@
HiddenLib.lib;%(AdditionalDependencies)
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+ $(SolutionDir)$(Configuration)\
+ HiddenLib.lib;%(AdditionalDependencies)
+
+
diff --git a/HiddenLib/HiddenLib.vcxproj b/HiddenLib/HiddenLib.vcxproj
index e9e5f95..5bf9239 100644
--- a/HiddenLib/HiddenLib.vcxproj
+++ b/HiddenLib/HiddenLib.vcxproj
@@ -5,10 +5,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
@@ -28,6 +36,12 @@
v120
Unicode
+
+ StaticLibrary
+ true
+ v120
+ Unicode
+
StaticLibrary
false
@@ -35,15 +49,28 @@
true
Unicode
+
+ StaticLibrary
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
@@ -60,6 +87,20 @@
true
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Windows
+ true
+
+
Level3
@@ -78,6 +119,24 @@
true
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Windows
+ true
+ true
+ true
+
+
diff --git a/HiddenTests/HiddenTests.vcxproj b/HiddenTests/HiddenTests.vcxproj
index 57529a9..cb16ce9 100644
--- a/HiddenTests/HiddenTests.vcxproj
+++ b/HiddenTests/HiddenTests.vcxproj
@@ -5,10 +5,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
{023C63A1-726C-48D9-AA17-E62A7EFD862D}
@@ -22,6 +30,12 @@
v120
Unicode
+
+ Application
+ true
+ v120
+ Unicode
+
Application
false
@@ -29,22 +43,41 @@
true
Unicode
+
+ Application
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
true
+
+ true
+
false
+
+ false
+
@@ -61,6 +94,22 @@
$(SolutionDir)$(Configuration)\
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+ true
+ HiddenLib.lib;%(AdditionalDependencies)
+ $(SolutionDir)x64\$(Configuration)\
+
+
Level3
@@ -80,6 +129,25 @@
$(SolutionDir)$(Configuration)\
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ true
+ HiddenLib.lib;%(AdditionalDependencies)
+ $(SolutionDir)$(Configuration)\
+
+