LunaHook-mirror/LunaHook/engine64/5pb.cpp
恍兮惚兮 163835bec9 some
2024-10-04 14:37:06 +08:00

34 lines
999 B
C++

#include "5pb.h"
#include "mages/mages.h"
namespace
{
// https://vndb.org/v46553
// 新宿葬命
bool _strncat()
{
HookParam hp;
hp.address = (uintptr_t)GetProcAddress(GetModuleHandleA("ucrtbase.dll"), "strncat");
hp.type = USING_STRING | CODEC_UTF8 | NO_CONTEXT;
hp.text_fun = [](hook_stack *stack, HookParam *hp, uintptr_t *data, uintptr_t *split, size_t *len)
{
*data = stack->ARG2;
*len = stack->ARG3;
*split = stack->ARG1;
};
hp.filter_fun = [](void *data, size_t *len, HookParam *hp)
{
auto s = std::string((char *)data, *len);
strReplace(s, "%N", "\n");
// sub_140096E80
//%I %B %C %R( %Z %%
return write_string_overwrite(data, len, s);
};
return NewHook(hp, "strncat");
}
}
bool _5pb::attach_function()
{
// CHAOS;HEAD_NOAH
bool b3 = hookmages::MAGES();
return b3 || _strncat();
}