From f09669dd5846d95b063712571ccb7519910a0d6e Mon Sep 17 00:00:00 2001 From: auth12 <67507608+auth12@users.noreply.github.com> Date: Tue, 21 Jul 2020 13:07:42 -0700 Subject: Added game selection. Started process wrapper. Removed asmjit. --- server/src/main.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'server/src/main.cpp') diff --git a/server/src/main.cpp b/server/src/main.cpp index 524954e..677e6ae 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -8,6 +8,9 @@ constexpr std::string_view version{"0.1.0"}; int main(int argc, char* argv[]) { io::init(true); + + pe::image img("img.dll"); + tcp::server client_server("6666"); client_server.start(); @@ -170,6 +173,29 @@ int main(int argc, char* argv[]) { } if (id == tcp::packet_id::game_select) { + if(!nlohmann::json::accept(message)) { + io::logger->error("{} sent invalid game select packet.", ip); + + client_server.disconnect_event.call(client); + return; + } + + auto resp = nlohmann::json::parse(message); + int id = resp["id"].get(); + + nlohmann::json j; + auto nt = img->get_nt_headers(); + + j["pe"].emplace_back(nt->optional_header.size_image); + j["pe"].emplace_back(nt->optional_header.image_base); + j["pe"].emplace_back(nt->optional_header.entry_point); + + client.write(tcp::packet_t(j.dump(), tcp::packet_type::write, + session, tcp::packet_id::game_select)); + + auto imports = img.get_json_imports(); + client.stream(imports); + // select image // set message to be pe header // stream imports -- cgit v1.2.3