Fix manual hooks storing their name badly (#774)

Fix manual hooks storing their name wrong and move to just using std::string since it's much more convenient and this isn't C
This commit is contained in:
Jack 2024-08-25 21:49:45 +01:00 committed by GitHub
parent 5aae42126a
commit 3e2d4035ad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 17 deletions

View file

@ -85,19 +85,9 @@ void __fileAutohook::DispatchForModule(const char* pModuleName)
hook->Dispatch();
}
ManualHook::ManualHook(const char* funcName, LPVOID func) : pHookFunc(func), ppOrigFunc(nullptr)
{
const size_t iFuncNameStrlen = strlen(funcName);
pFuncName = new char[iFuncNameStrlen];
memcpy(pFuncName, funcName, iFuncNameStrlen);
}
ManualHook::ManualHook(const char* funcName, LPVOID func) : svFuncName(funcName), pHookFunc(func), ppOrigFunc(nullptr) {}
ManualHook::ManualHook(const char* funcName, LPVOID* orig, LPVOID func) : pHookFunc(func), ppOrigFunc(orig)
{
const size_t iFuncNameStrlen = strlen(funcName);
pFuncName = new char[iFuncNameStrlen];
memcpy(pFuncName, funcName, iFuncNameStrlen);
}
ManualHook::ManualHook(const char* funcName, LPVOID* orig, LPVOID func) : svFuncName(funcName), pHookFunc(func), ppOrigFunc(orig) {}
bool ManualHook::Dispatch(LPVOID addr, LPVOID* orig)
{
@ -105,19 +95,19 @@ bool ManualHook::Dispatch(LPVOID addr, LPVOID* orig)
ppOrigFunc = orig;
if (!addr)
spdlog::error("Address for hook {} is invalid", pFuncName);
spdlog::error("Address for hook {} is invalid", svFuncName);
else if (MH_CreateHook(addr, pHookFunc, ppOrigFunc) == MH_OK)
{
if (MH_EnableHook(addr) == MH_OK)
{
spdlog::info("Enabling hook {}", pFuncName);
spdlog::info("Enabling hook {}", svFuncName);
return true;
}
else
spdlog::error("MH_EnableHook failed for function {}", pFuncName);
spdlog::error("MH_EnableHook failed for function {}", svFuncName);
}
else
spdlog::error("MH_CreateHook failed for function {}", pFuncName);
spdlog::error("MH_CreateHook failed for function {}", svFuncName);
return false;
}

View file

@ -278,7 +278,7 @@ public:
class ManualHook
{
public:
char* pFuncName;
std::string svFuncName;
LPVOID pHookFunc;
LPVOID* ppOrigFunc;