mirror of
https://github.com/R2Northstar/NorthstarLauncher
synced 2026-08-23 20:26:04 -04:00
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:
parent
5aae42126a
commit
3e2d4035ad
2 changed files with 7 additions and 17 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ public:
|
|||
class ManualHook
|
||||
{
|
||||
public:
|
||||
char* pFuncName;
|
||||
std::string svFuncName;
|
||||
|
||||
LPVOID pHookFunc;
|
||||
LPVOID* ppOrigFunc;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue