diff --git a/ConsoleLogonHook/ConsoleLogonHook.vcxproj b/ConsoleLogonHook/ConsoleLogonHook.vcxproj
index 899d07c..fc5e87d 100644
--- a/ConsoleLogonHook/ConsoleLogonHook.vcxproj
+++ b/ConsoleLogonHook/ConsoleLogonHook.vcxproj
@@ -23,7 +23,7 @@
Win32Proj
{6cc17286-2fe3-4bcb-899b-76d1eacd3469}
ConsoleLogonHook
- 10.0.18362.0
+ 10.0
@@ -118,7 +118,7 @@
stdcpplatest
stdc17
$(ProjectDir);detours;imgui;%(AdditionalIncludeDirectories)
- MultiThreadedDebugDLL
+ MultiThreadedDebug
Windows
@@ -142,7 +142,7 @@
stdcpplatest
stdc17
$(ProjectDir);detours;imgui;%(AdditionalIncludeDirectories)
- MultiThreadedDLL
+ MultiThreaded
Windows
diff --git a/ConsoleLogonHook/util/memory_man.h b/ConsoleLogonHook/util/memory_man.h
index 59ec502..cc97241 100644
--- a/ConsoleLogonHook/util/memory_man.h
+++ b/ConsoleLogonHook/util/memory_man.h
@@ -11,6 +11,7 @@
namespace memory
{
+ inline const int VersionNumber = 104;
inline const std::string offsetCacheFileName = "ConsoleLogonHookOffsetCache.txt";
inline std::vector> offsetCache;
@@ -53,6 +54,8 @@ namespace memory
std::ofstream file(offsetCacheFileName);
+ file << "VersionNumber" << ":" << VersionNumber << "\n";
+
for (int i = 0; i < offsetCache.size(); ++i)
{
file << offsetCache[i].first << ":" << offsetCache[i].second << "\n";
@@ -231,6 +234,12 @@ namespace memory
static void CheckCache()
{
+ uintptr_t savedVersion = FindInOffsetCache("VersionNumber");
+ if (savedVersion != VersionNumber)
+ {
+ offsetCache.clear();
+ SPDLOG_INFO("Version Number does not match! clearing offset cache");
+ }
//return;
//auto SecurityOptionsView__RuntimeClassIntialise = (uint8_t*)(baseaddress + 0x36EB4);
auto SecurityOptionsView__RuntimeClassIntialise = FindPatternCached("SecurityOptionsViewRuntimeClassIntialise", { "55 56 57 41 56 41 57 48 8B EC 48 83 EC 30" });
diff --git a/ConsoleLogonUI/ConsoleLogonUI.vcxproj b/ConsoleLogonUI/ConsoleLogonUI.vcxproj
index d45fa05..8df9484 100644
--- a/ConsoleLogonUI/ConsoleLogonUI.vcxproj
+++ b/ConsoleLogonUI/ConsoleLogonUI.vcxproj
@@ -23,7 +23,7 @@
Win32Proj
{e624c20f-a41a-4bc5-b312-257ed4aecfb9}
ConsoleLogonUI
- 10.0.18362.0
+ 10.0
@@ -115,7 +115,7 @@
stdcpplatest
stdc17
$(ProjectDir);%(AdditionalIncludeDirectories)
- MultiThreadedDebugDLL
+ MultiThreadedDebug
Windows
@@ -137,7 +137,7 @@
stdcpplatest
stdc17
$(ProjectDir);%(AdditionalIncludeDirectories)
- MultiThreadedDLL
+ MultiThreaded
Windows
diff --git a/ConsoleLogonUI/ui/dui_manager.cpp b/ConsoleLogonUI/ui/dui_manager.cpp
index 4e44011..eefefd8 100644
--- a/ConsoleLogonUI/ui/dui_manager.cpp
+++ b/ConsoleLogonUI/ui/dui_manager.cpp
@@ -183,30 +183,7 @@ void duiManager::UnloadDUI()
auto pDuiManager = Get();
UnregisterHotKey(pDuiManager->pWndHost->GetHWND(), hotkeyid);
-
- if (pDuiManager->pUIElement)
- {
- pDuiManager->pUIElement->DestroyAll(true);
- }
- if (pDuiManager->pWndElement)
- {
- pDuiManager->pWndElement->DestroyAll(true);
-
- }
- if (pDuiManager->pWndHost)
- {
- pDuiManager->pWndHost->DestroyWindow();
- pDuiManager->pWndHost->Destroy();
- }
- if (pDuiManager->pParser)
- pDuiManager->pParser->Destroy();
-
- pDuiManager->pParser = NULL;
- pDuiManager->pWndHost = NULL;
- pDuiManager->pUIElement = NULL;
- pDuiManager->pWndElement = NULL;
- pDuiManager->pageContainerElement = NULL;
-
+ pDuiManager->pWndHost->DestroyWindow();
DirectUI::UnInitThread();
DirectUI::UnInitProcessPriv(0);