diff options
author | GeckoEidechse <gecko.eidechse+git@pm.me> | 2024-08-27 18:03:17 +0200 |
---|---|---|
committer | GeckoEidechse <gecko.eidechse+git@pm.me> | 2024-08-27 18:03:17 +0200 |
commit | 67e41ad3030a90f685bf921aec5c38f82fd3d6e2 (patch) | |
tree | 74a8b8927480e4eaddf4dc87d76a43f4671a103c | |
parent | f1288350c729d63aeeb0a6bdab0746b865131668 (diff) | |
download | NorthstarLauncher-67e41ad3030a90f685bf921aec5c38f82fd3d6e2.tar.gz NorthstarLauncher-67e41ad3030a90f685bf921aec5c38f82fd3d6e2.zip |
Revert "hooking: run callbacks for imported modules (#780)"temp/test-revert-hooking-change
This reverts commit f1288350c729d63aeeb0a6bdab0746b865131668.
-rw-r--r-- | primedev/thirdparty/silver-bun/module.cpp | 15 | ||||
-rw-r--r-- | primedev/thirdparty/silver-bun/module.h | 2 | ||||
-rw-r--r-- | primedev/windows/libsys.cpp | 16 |
3 files changed, 0 insertions, 33 deletions
diff --git a/primedev/thirdparty/silver-bun/module.cpp b/primedev/thirdparty/silver-bun/module.cpp index dceb602a..84f4da9e 100644 --- a/primedev/thirdparty/silver-bun/module.cpp +++ b/primedev/thirdparty/silver-bun/module.cpp @@ -66,21 +66,6 @@ void CModule::Init() m_ModuleSections.push_back(ModuleSections_t(reinterpret_cast<const char*>(hCurrentSection.Name), static_cast<uintptr_t>(m_pModuleBase + hCurrentSection.VirtualAddress), hCurrentSection.SizeOfRawData)); // Push back a struct with the section data. } - - // Get the location of IMAGE_IMPORT_DESCRIPTOR for this module by adding the IMAGE_DIRECTORY_ENTRY_IMPORT relative virtual address onto our - // module base address. - IMAGE_IMPORT_DESCRIPTOR* pImageImportDescriptors = reinterpret_cast<IMAGE_IMPORT_DESCRIPTOR*>( - m_pModuleBase + m_pNTHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); - if (!pImageImportDescriptors) - return; - - for (IMAGE_IMPORT_DESCRIPTOR* pIID = pImageImportDescriptors; pIID->Name != 0; pIID++) - { - // Get virtual relative Address of the imported module name. Then add module base Address to get the actual location. - const char* szImportedModuleName = reinterpret_cast<char*>(reinterpret_cast<DWORD*>(m_pModuleBase + pIID->Name)); - - m_vImportedModules.push_back(szImportedModuleName); - } } //----------------------------------------------------------------------------- diff --git a/primedev/thirdparty/silver-bun/module.h b/primedev/thirdparty/silver-bun/module.h index cc513086..5683ee14 100644 --- a/primedev/thirdparty/silver-bun/module.h +++ b/primedev/thirdparty/silver-bun/module.h @@ -52,7 +52,6 @@ public: ModuleSections_t GetSectionByName(const char* szSectionName) const; inline const std::vector<CModule::ModuleSections_t>& GetSections() const { return m_ModuleSections; } - inline const std::vector<std::string>& GetImportedModules() const { return m_vImportedModules; } inline uintptr_t GetModuleBase(void) const { return m_pModuleBase; } inline DWORD GetModuleSize(void) const { return m_nModuleSize; } inline const std::string& GetModuleName(void) const { return m_ModuleName; } @@ -74,5 +73,4 @@ private: uintptr_t m_pModuleBase; DWORD m_nModuleSize; std::vector<ModuleSections_t> m_ModuleSections; - std::vector<std::string> m_vImportedModules; }; diff --git a/primedev/windows/libsys.cpp b/primedev/windows/libsys.cpp index 0aff820b..501eae68 100644 --- a/primedev/windows/libsys.cpp +++ b/primedev/windows/libsys.cpp @@ -18,31 +18,15 @@ ILoadLibraryExW o_LoadLibraryExW = nullptr; //----------------------------------------------------------------------------- void LibSys_RunModuleCallbacks(HMODULE hModule) { - // Modules that we have already ran callbacks for. - // Note: If we ever hook unloading modules, then this will need updating to handle removal etc. - static std::vector<HMODULE> vCalledModules; - if (!hModule) { return; } - // If we have already ran callbacks for this module, don't run them again. - if (std::find(vCalledModules.begin(), vCalledModules.end(), hModule) != vCalledModules.end()) - { - return; - } - vCalledModules.push_back(hModule); - // Get module base name in ASCII as noone wants to deal with unicode CHAR szModuleName[MAX_PATH]; GetModuleBaseNameA(GetCurrentProcess(), hModule, szModuleName, MAX_PATH); - // Run calllbacks for all imported modules - CModule cModule(hModule); - for (const std::string& svImport : cModule.GetImportedModules()) - LibSys_RunModuleCallbacks(GetModuleHandleA(svImport.c_str())); - // DevMsg(eLog::NONE, "%s\n", szModuleName); // Call callbacks |