#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(); }