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);