fix(win): improve module name retrieval in findLoadedModule function
This commit is contained in:
parent
87ac7d8a1f
commit
687d3c7ce8
1 changed files with 6 additions and 4 deletions
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
#include <Psapi.h>
|
#include <Psapi.h>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
@ -409,15 +410,16 @@ HMODULE ArchMiscWindows::findLoadedModule(std::array<const char *, 2> moduleName
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string loadedModuleName;
|
const auto moduleCount = std::min<size_t>(cbNeeded / sizeof(HMODULE), hModules.size());
|
||||||
for (size_t i = 0; i < (cbNeeded / sizeof(HMODULE)); ++i) {
|
std::array<char, MAX_PATH> loadedModuleName;
|
||||||
if (!GetModuleBaseNameA(hProcess, hModules[i], loadedModuleName.data(), sizeof(loadedModuleName))) {
|
for (size_t i = 0; i < moduleCount; ++i) {
|
||||||
|
if (!GetModuleBaseNameA(hProcess, hModules[i], loadedModuleName.data(), MAX_PATH)) {
|
||||||
LOG_WARN("could not get base name of loaded module %d", i);
|
LOG_WARN("could not get base name of loaded module %d", i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const auto &moduleName : moduleNames) {
|
for (const auto &moduleName : moduleNames) {
|
||||||
if (_stricmp((loadedModuleName.data()), moduleName) == 0) {
|
if (_stricmp(loadedModuleName.data(), moduleName) == 0) {
|
||||||
return hModules[i];
|
return hModules[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue