求个大佬把C++代码改成易语言代码
#define ZXString char*bool Hook_StringPool__GetString(bool enable)
{
//Log(__FUNCTION__ " %i\r\n", enable);
typedef ZXString*(__fastcall* StringPool__GetString_t)(void* ecx, void* edx, ZXString* result, unsigned int nIdx, char formal);
static auto StringPool__GetString =
reinterpret_cast<StringPool__GetString_t>(0x00746750);
StringPool__GetString_t Hook = [](void* ecx, void* edx, ZXString* result, unsigned int nIdx, char formal) -> ZXString*
{
auto ret = StringPool__GetString(ecx, edx, result, nIdx, formal);
if (nIdx == 2722)
{
strcpy(*ret, "ABC");
}
//Log("StringPool__GetString: %s\r\n", *result);
return ret;
};
return SetHook(enable, reinterpret_cast<void**>(&StringPool__GetString), Hook);
}
Hook这一部分代码没用的~设置Hook和回调函数~ 揰掵佲 发表于 2020-2-19 12:49
Hook这一部分代码没用的~设置Hook和回调函数~
那需要要怎么弄的?? 可可可乐 发表于 2020-2-19 13:22
那需要要怎么弄的??
把你全部的HOOK代码贴上来 揰掵佲 发表于 2020-2-20 00:11
把你全部的HOOK代码贴上来
BOOL SetHook(BOOL bInstall, PVOID* ppvTarget, PVOID pvDetour)
{
if (DetourTransactionBegin() != NO_ERROR)
return FALSE;
auto tid = GetCurrentThread();
if (DetourUpdateThread(tid) == NO_ERROR)
{
auto func = bInstall ? DetourAttach : DetourDetach;
if (func(ppvTarget, pvDetour) == NO_ERROR)
{
if (DetourTransactionCommit() == NO_ERROR)
return TRUE;
}
}
DetourTransactionAbort();
return FALSE;
}
只有这些跟上面的。
页:
[1]