Fix realy exploit
This commit is contained in:
parent
56b01bc2ae
commit
bb65f463be
2
deps/fmt
vendored
2
deps/fmt
vendored
@ -1 +1 @@
|
|||||||
Subproject commit d5893c9a133382e1862c929c1d50ccaef2a6d2fc
|
Subproject commit ed301089183f51d53f9f076b9676d9c2a1f7c505
|
2
deps/json11
vendored
2
deps/json11
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 913269c7a4cf9ab61a9748090c7e2484a2546a02
|
Subproject commit fb6cc808e0a3532d27ee336cd8f2e1ff06093f3b
|
2
deps/mongoose
vendored
2
deps/mongoose
vendored
@ -1 +1 @@
|
|||||||
Subproject commit b987df197436b8581a7a5a9e00c1d341f81fdb30
|
Subproject commit a6230bafe706006eae1bf18406420969c835330a
|
2
deps/protobuf
vendored
2
deps/protobuf
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 2ba058c66c10781d57a332987be23e3fed0f9e1c
|
Subproject commit 00d5a7f099065e2c8d119039c2f42c1f88ad8f59
|
@ -684,7 +684,9 @@ namespace Components
|
|||||||
{
|
{
|
||||||
if (entry->registered)
|
if (entry->registered)
|
||||||
{
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
Logger::Print("Received valid node list with %i entries from %s\n", list.address_size(), address.GetCString());
|
Logger::Print("Received valid node list with %i entries from %s\n", list.address_size(), address.GetCString());
|
||||||
|
#endif
|
||||||
|
|
||||||
entry->isDedi = list.is_dedi();
|
entry->isDedi = list.is_dedi();
|
||||||
entry->protocol = list.protocol();
|
entry->protocol = list.protocol();
|
||||||
|
@ -106,6 +106,14 @@ namespace Components
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QuickPatch::CL_HandleRelayPacketCheck(Game::msg_t* msg, int client)
|
||||||
|
{
|
||||||
|
if (Command::Params().Length() >= 3)
|
||||||
|
{
|
||||||
|
Game::CL_HandleRelayPacket(msg, client);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QuickPatch::QuickPatch()
|
QuickPatch::QuickPatch()
|
||||||
{
|
{
|
||||||
// protocol version (workaround for hacks)
|
// protocol version (workaround for hacks)
|
||||||
@ -325,6 +333,7 @@ namespace Components
|
|||||||
Utils::Hook::Set<BYTE>(0x412370, 0xC3); // SV_SteamAuthClient
|
Utils::Hook::Set<BYTE>(0x412370, 0xC3); // SV_SteamAuthClient
|
||||||
Utils::Hook(0x414D92, QuickPatch::MsgReadBitsCompressCheckSV, HOOK_CALL).Install()->Quick(); // SV_ExecuteClientCommands
|
Utils::Hook(0x414D92, QuickPatch::MsgReadBitsCompressCheckSV, HOOK_CALL).Install()->Quick(); // SV_ExecuteClientCommands
|
||||||
Utils::Hook(0x4A9F56, QuickPatch::MsgReadBitsCompressCheckCL, HOOK_CALL).Install()->Quick(); // CL_ParseServerMessage
|
Utils::Hook(0x4A9F56, QuickPatch::MsgReadBitsCompressCheckCL, HOOK_CALL).Install()->Quick(); // CL_ParseServerMessage
|
||||||
|
Utils::Hook(0x5AA009, QuickPatch::CL_HandleRelayPacketCheck, HOOK_CALL).Install()->Quick(); // CL_HandleRelayPacket
|
||||||
|
|
||||||
Command::Add("unlockstats", [] (Command::Params params)
|
Command::Add("unlockstats", [] (Command::Params params)
|
||||||
{
|
{
|
||||||
|
@ -1,27 +1,28 @@
|
|||||||
namespace Components
|
namespace Components
|
||||||
{
|
{
|
||||||
class QuickPatch : public Component
|
class QuickPatch : public Component
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef void(Callback)();
|
typedef void(Callback)();
|
||||||
|
|
||||||
QuickPatch();
|
QuickPatch();
|
||||||
~QuickPatch();
|
~QuickPatch();
|
||||||
const char* GetName() { return "QuickPatch"; };
|
const char* GetName() { return "QuickPatch"; };
|
||||||
|
|
||||||
static void UnlockStats();
|
static void UnlockStats();
|
||||||
static void OnShutdown(Callback* callback);
|
static void OnShutdown(Callback* callback);
|
||||||
|
|
||||||
static void OnFrame(Callback* callback);
|
static void OnFrame(Callback* callback);
|
||||||
static void Once(Callback* callback);
|
static void Once(Callback* callback);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static wink::signal<wink::slot<Callback>> ShutdownSignal;
|
static wink::signal<wink::slot<Callback>> ShutdownSignal;
|
||||||
|
|
||||||
static int64_t* GetStatsID();
|
static int64_t* GetStatsID();
|
||||||
static void ShutdownStub(int channel, const char* message);
|
static void ShutdownStub(int channel, const char* message);
|
||||||
|
|
||||||
static int MsgReadBitsCompressCheckSV(const char *from, char *to, int size);
|
static int MsgReadBitsCompressCheckSV(const char *from, char *to, int size);
|
||||||
static int MsgReadBitsCompressCheckCL(const char *from, char *to, int size);
|
static int MsgReadBitsCompressCheckCL(const char *from, char *to, int size);
|
||||||
};
|
static void CL_HandleRelayPacketCheck(Game::msg_t* msg, int client);
|
||||||
}
|
};
|
||||||
|
}
|
||||||
|
@ -13,6 +13,7 @@ namespace Game
|
|||||||
CL_ConnectFromParty_t CL_ConnectFromParty = (CL_ConnectFromParty_t)0x433D30;
|
CL_ConnectFromParty_t CL_ConnectFromParty = (CL_ConnectFromParty_t)0x433D30;
|
||||||
CL_DownloadsComplete_t CL_DownloadsComplete = (CL_DownloadsComplete_t)0x42CE90;
|
CL_DownloadsComplete_t CL_DownloadsComplete = (CL_DownloadsComplete_t)0x42CE90;
|
||||||
CL_DrawStretchPicPhysical_t CL_DrawStretchPicPhysical = (CL_DrawStretchPicPhysical_t)0x4FC120;
|
CL_DrawStretchPicPhysical_t CL_DrawStretchPicPhysical = (CL_DrawStretchPicPhysical_t)0x4FC120;
|
||||||
|
CL_HandleRelayPacket_t CL_HandleRelayPacket = (CL_HandleRelayPacket_t)0x5A8C70;
|
||||||
CL_ResetViewport_t CL_ResetViewport = (CL_ResetViewport_t)0x4A8830;
|
CL_ResetViewport_t CL_ResetViewport = (CL_ResetViewport_t)0x4A8830;
|
||||||
|
|
||||||
Cmd_AddCommand_t Cmd_AddCommand = (Cmd_AddCommand_t)0x470090;
|
Cmd_AddCommand_t Cmd_AddCommand = (Cmd_AddCommand_t)0x470090;
|
||||||
|
@ -24,6 +24,9 @@ namespace Game
|
|||||||
typedef void(_cdecl * CL_DrawStretchPicPhysical_t)(float x, float y, float w, float h, float xScale, float yScale, float xay, float yay, const float *color, Game::Material* material);
|
typedef void(_cdecl * CL_DrawStretchPicPhysical_t)(float x, float y, float w, float h, float xScale, float yScale, float xay, float yay, const float *color, Game::Material* material);
|
||||||
extern CL_DrawStretchPicPhysical_t CL_DrawStretchPicPhysical;
|
extern CL_DrawStretchPicPhysical_t CL_DrawStretchPicPhysical;
|
||||||
|
|
||||||
|
typedef void(__cdecl * CL_HandleRelayPacket_t)(Game::msg_t* msg, int client);
|
||||||
|
extern CL_HandleRelayPacket_t CL_HandleRelayPacket;
|
||||||
|
|
||||||
typedef void(__cdecl * CL_ResetViewport_t)();
|
typedef void(__cdecl * CL_ResetViewport_t)();
|
||||||
extern CL_ResetViewport_t CL_ResetViewport;
|
extern CL_ResetViewport_t CL_ResetViewport;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user