Patch buffer overflow + fix build
This commit is contained in:
parent
9a33ae77a6
commit
1bf2400164
2
deps/GSL
vendored
2
deps/GSL
vendored
@ -1 +1 @@
|
|||||||
Subproject commit b39e7e4b0987859f5b19ff7686b149c916588658
|
Subproject commit caae4dd0f8343efb879369dcd08a2b18aae59f3b
|
@ -230,6 +230,11 @@ namespace network
|
|||||||
// Rather than try and let the player in, just tell them they are a duplicate player and reject connection
|
// Rather than try and let the player in, just tell them they are a duplicate player and reject connection
|
||||||
game::NET_OutOfBandPrint(game::NS_SERVER, from, "error\nYou are already connected to the server.");
|
game::NET_OutOfBandPrint(game::NS_SERVER, from, "error\nYou are already connected to the server.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* memmove_stub(void* dst, void* src, size_t size)
|
||||||
|
{
|
||||||
|
return std::memmove(dst, src, std::min(size, 1262ull));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void send(const game::netadr_s& address, const std::string& command, const std::string& data, const char separator)
|
void send(const game::netadr_s& address, const std::string& command, const std::string& data, const char separator)
|
||||||
@ -360,17 +365,15 @@ namespace network
|
|||||||
|
|
||||||
// ignore built in "print" oob command and add in our own
|
// ignore built in "print" oob command and add in our own
|
||||||
utils::hook::set<uint8_t>(0x9B0326_b, 0xEB);
|
utils::hook::set<uint8_t>(0x9B0326_b, 0xEB);
|
||||||
network::on("print", [](const game::netadr_s&, const std::string_view& data)
|
|
||||||
{
|
|
||||||
const std::string message{ data };
|
|
||||||
console::info(message.data());
|
|
||||||
});
|
|
||||||
|
|
||||||
// initialize query_socket
|
// initialize query_socket
|
||||||
utils::hook::jump(0xD57C7E_b, net_init_stub);
|
utils::hook::jump(0xD57C7E_b, net_init_stub);
|
||||||
|
|
||||||
// use our own protocol version
|
// use our own protocol version
|
||||||
utils::hook::jump(0xCE8290_b, get_protocol_version_stub);
|
utils::hook::jump(0xCE8290_b, get_protocol_version_stub);
|
||||||
|
|
||||||
|
// patch buffer overflow
|
||||||
|
utils::hook::call(0xBB4ABB_b, memmove_stub); // NET_DeferPacketToClient
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user