#include "pch.h" #include "sock.h" #include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" #include "rapidjson/filereadstream.h" #include "rapidjson/filewritestream.h" #include "rapidjson/istreamwrapper.h" #include "STL.h" void sock::Pack_³é½±(int idx, int code, void* p3, void* p4) { DWORD Size; Net_Get_Dword(Size); char* Buffer = new char[Size+1]; Net_Get_Buffer(Buffer, Size); Buffer[Size] = '\0'; rapidjson::Document Dom; Dom.Parse(Buffer); StringArr_STL["DragonBox"][0] = Dom["op"].GetString(); std::cout << 666 << std::endl; } void sock::R_Register_Pack() { auto Registerfunc = reinterpret_cast(0x7186D0); Registerfunc(130, Pack_³é½±, 0); } bool sock::Net_Get_Byte(BYTE& v) { typedef bool(__cdecl* func_t)(BYTE*); return reinterpret_cast(0x011AEA00)(&v); } bool sock::Net_Get_Short(short int& v) { typedef bool(__cdecl* func_t)(short int*); return reinterpret_cast(0x011AEA30)(&v); } bool sock::Net_Get_Dword(DWORD& v) { typedef bool(__cdecl* func_t)(DWORD*); return reinterpret_cast(0x011AEA60)(&v); } bool sock::Net_Get_Buffer(char* v, int sz) { typedef bool(__cdecl* func_t)(char*, int); return reinterpret_cast(0x011AEA90)(v, sz); } /* bool sock::HookRegistPackHandler(int idx, pack_handler_t handler) { return handleTable.emplace(idx, handler).second; } */