diff options
| author | auth <[email protected]> | 2020-07-17 15:38:48 +0200 |
|---|---|---|
| committer | auth <[email protected]> | 2020-07-17 15:38:48 +0200 |
| commit | 4f6ed0cbb36c6912feed7db96d963ad0b1145b02 (patch) | |
| tree | 6391e1cc30bc329dd060ca009337ead762848264 | |
| parent | Removed un (diff) | |
| parent | Added certificates. (diff) | |
| download | loader-4f6ed0cbb36c6912feed7db96d963ad0b1145b02.tar.xz loader-4f6ed0cbb36c6912feed7db96d963ad0b1145b02.zip | |
Merge branch 'master' into windows
| -rw-r--r-- | bin/ssl/rootCA.crt | 32 | ||||
| -rw-r--r-- | bin/ssl/rootCA.key | 51 | ||||
| -rw-r--r-- | bin/ssl/server.crt | 25 | ||||
| -rw-r--r-- | bin/ssl/server.key | 27 | ||||
| -rw-r--r-- | client/src/client/packet.h | 15 | ||||
| -rw-r--r-- | client/src/injection/mapper.h | 10 | ||||
| -rw-r--r-- | client/src/main.cpp | 5 | ||||
| -rw-r--r-- | server/src/forum/forum.cpp | 23 | ||||
| -rw-r--r-- | server/src/image/pe.h | 11 | ||||
| -rw-r--r-- | server/src/main.cpp | 3 | ||||
| -rw-r--r-- | server/src/server/packet.h | 15 | ||||
| -rw-r--r-- | server/src/server/server.h | 1 |
12 files changed, 206 insertions, 12 deletions
diff --git a/bin/ssl/rootCA.crt b/bin/ssl/rootCA.crt new file mode 100644 index 0000000..9d2b7ed --- /dev/null +++ b/bin/ssl/rootCA.crt @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFgTCCA2mgAwIBAgIUI1iNRm7wAiOk64UxFSCPziYMdyAwDQYJKoZIhvcNAQEL +BQAwUDELMAkGA1UEBhMCQ0ExDzANBgNVBAgMBlF1ZWJlYzERMA8GA1UEBwwITW9u +dHJlYWwxDDAKBgNVBAoMA2FscDEPMA0GA1UECwwGbG9hZGVyMB4XDTIwMDYyOTA4 +NDgxMloXDTIzMDQxOTA4NDgxMlowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAgMBlF1 +ZWJlYzERMA8GA1UEBwwITW9udHJlYWwxDDAKBgNVBAoMA2FscDEPMA0GA1UECwwG +bG9hZGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvPv6+6+Nn3D5 +YPa6SwvS7dzZNe8kPqkAwZy4PMCQQ9MmQQILJMjou/6i4xN0YL2bZ24VoVhOAmVa +sZDLV1Qmra+zDJa4no5bBIxsA/HZc3QAHRzkye9Pw8avBAw67X7AzWH5z7i2Ce+l +F4ezNG6i7PJ3QC+jkJRqzm0gh/BIjHl7takuBunNS7l1tP+M4YUIqN6AV/9sLodE +YS9PL8fP9Gk6Lds90OSj4DBmsYJdYLfxdPrQ609ijKOjQtphUZ8/JnaED7KGnFV3 +FIQV7L/usmxUKUbwxa+36TXpC+qYGKXTdVpu++VKcgHU0u8H03X/4LlR0DUkby/P +nFxJFL1WWzbYIH3CBCx2YeaBneT6EUZvCBNHwL1fl8sG8FOiRoV1G2sy7eBadofi +R+l7Pm4iTzsl1zF9ODCsE3EvJdZ/WxbSk5OU0oLJyeCJszhA/jPXu9ogKjFG1LVd +5JEYGvg4SKKiEUD6G/luCTV9WKcajm4v+BtzTy/ftl1e4zbQ/Vod44BE/0Rj0Z+l +yK7XI3RYZwO+McBjT3/bUAED1dB3u8kOyHf4k+boIYaI3LImXVGZue7tB+qQv6ZB +NY9m3FM6yVdV4peWKBsuSucGDVElBD0SgaeOvmLPFgVaQjmabRVUReYHvWoVHLDZ +WgPZe72SkPJ1Lu85Ux52PMDeKrIigC0CAwEAAaNTMFEwHQYDVR0OBBYEFE4IyL3j +3kdYSMpOfxRGmUSmLbGAMB8GA1UdIwQYMBaAFE4IyL3j3kdYSMpOfxRGmUSmLbGA +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAIilajIQyW05OGcH +PY8ePZupbnOsjvHjHk+CtvrMcf6CAXZkbkgfkAddJcS4D7HoZG9v5GONLZSIfVqT +E7iKSQm4uYaAE/MqaHIdZwPrE9Z/mp5sGP1zdNFPuqil4JvSusP2aV6D5++1//P3 +Hw9t588U5phGalL6MP9NezXnuuRNC6Nz5CIkawlO2O4bg2BX7wxFiF5YeZEtdKI4 +CKAyoTlVPgc0VkzSPTUGwK2MYOq3BqVrtmvNthItcXp6ML5dhRv2Grk9pEU/xirv +ahIxwusFXiSmW2vgfPFGdNb3elnHGs7H4291oNNvtQjlHvjZXOSRjeBnLMunUsyn +81zDbaRC91TZPPogUFiKq3Avh80d/QnoypdjhPmhsOGwPikjolfJ45jYO/f27CVT +AqexIUOuKaJudeejWX3Vj3xlyl4x8kxPk6zNnBLY9fAur5i/UTLOfZtbMAP1T1ZJ +vQZ5ncJFy3SkN4yyzeOXAXXZMh3xIEALtPqH4UFWdvLcMUIHUmCa22zYOK9zcKFm +qwSN/mNqYvYFS9nT2CkmjcXzbXazijfjnie94nHDtCyZzBwKz76xuldDcE+NMXy2 +xf2P4NoAmulUDxgHLhsXJVA5OS9kGuJNQ6i2axZpRhPBN6kUFfT14VjZ/Co/Fkty +hTbB0ZS9vX7ug3j2KF0WPHyJaXcS +-----END CERTIFICATE----- diff --git a/bin/ssl/rootCA.key b/bin/ssl/rootCA.key new file mode 100644 index 0000000..e1bc0eb --- /dev/null +++ b/bin/ssl/rootCA.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/bin/ssl/server.crt b/bin/ssl/server.crt new file mode 100644 index 0000000..5aa56bf --- /dev/null +++ b/bin/ssl/server.crt @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEJzCCAg8CFAjFtLu3ZTc9eA0uzatK+zpfb4BMMA0GCSqGSIb3DQEBCwUAMFAx +CzAJBgNVBAYTAkNBMQ8wDQYDVQQIDAZRdWViZWMxETAPBgNVBAcMCE1vbnRyZWFs +MQwwCgYDVQQKDANhbHAxDzANBgNVBAsMBmxvYWRlcjAeFw0yMDA2MjkwODUyMjJa +Fw0yMTExMTEwODUyMjJaMFAxCzAJBgNVBAYTAkNBMQ8wDQYDVQQIDAZRdWViZWMx +ETAPBgNVBAcMCE1vbnRyZWFsMQwwCgYDVQQKDANhbHAxDzANBgNVBAsMBnNlcnZl +cjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKWVnGIjXOebyHfEv6Zf +m2Dvs2LlaB8LCJ/czaFR8taoXkBW0o8Wb8iq18ztQc0zOwO3n2yN9NYTgQl0kQdM +wUeh3BfUr4zFhhbQ0DuXzjiS9IGB6tNkykoE6SdFZQAVo8JkoKJum02czgWvwuT2 +eeUFwAsD0LFQGZOkZevkv7hRgZK5jA1hNmVOpBT2cJAn8k+iL7i/UfLg2qWnX4j6 +DEnDiEdTeXPnb3qP8qlFafz9gFBUuc36am7iYqDLVDvE4LZUfNn40fMBgGwcP9a4 +KgNidCU0tyh0aaGVYRRfKqrOB/2z7tDIZqrGqfrGKlXY/T9P0PaYjsVlJ59RCOh3 +PQ8CAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAR0MI0mN1Tn3qtzWLE/FCV69aXRme +KbErslcj30NEr9BsXL3p83J6ruz+artMmu0elVCz38YF9JVgg1AJuMZT+d6aXTSB +yDEcVPqBe2yH8DxHhWto7oJkQj/ZgVRm608PEpYhDuH3ymKqm1jzDjsRn37UZVxn +0JxmuF+SEbFO8l5Ly2j+9mvIkBey5MLBC6bialPR4DR0MT2n9zv97iYL+L6436Of +t1wmgZV5K3hlOkaBompj5BcDn/fefkfIhLpvd041wzZODPrnAyrebujAlNP82Gbc +WvG19XIGlJG0zNH76Bdpgi25liM0NTmzdg1mLhgOYB3sYSpwiDoRscWBvSQcoeed +4HN4xN+Eq3t4NbO6rC8VYjPJZboMS34nFjCrsbfVVYUwgfmLCa9I/dN/by/yJeuJ +dkRIn1ijS3oKsVbwRIZY5skh3jbj1LplOvnyO0R4Q5cPK3/0MddX7IsS5WfWMiwT +2i6BiBSFbbnNhSYDIoBjsRMMRswi64VFANI4EnMBVDGkANEHU7wPf43128l0zeXU +IXXWxU8jzzzNIHY8ch4q/BRb14RjCTET7kIpgZjf13X/8TT9kGabvLqOhhgk21tG +ZZ126Uk6+gvvW5ldyeE/almQ8tyon73G1tO53Umys1ugdtmWtnz6LkHLtTcutSs1 +7jGPzN9ihQnm5eY= +-----END CERTIFICATE----- diff --git a/bin/ssl/server.key b/bin/ssl/server.key new file mode 100644 index 0000000..6da1531 --- /dev/null +++ b/bin/ssl/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEApZWcYiNc55vId8S/pl+bYO+zYuVoHwsIn9zNoVHy1qheQFbS +jxZvyKrXzO1BzTM7A7efbI301hOBCXSRB0zBR6HcF9SvjMWGFtDQO5fOOJL0gYHq +02TKSgTpJ0VlABWjwmSgom6bTZzOBa/C5PZ55QXACwPQsVAZk6Rl6+S/uFGBkrmM +DWE2ZU6kFPZwkCfyT6IvuL9R8uDapadfiPoMScOIR1N5c+dveo/yqUVp/P2AUFS5 +zfpqbuJioMtUO8TgtlR82fjR8wGAbBw/1rgqA2J0JTS3KHRpoZVhFF8qqs4H/bPu +0Mhmqsap+sYqVdj9P0/Q9piOxWUnn1EI6Hc9DwIDAQABAoIBAQCDOl3UvRftCl5G +5SvKDC1VFsMBVrQ9Hf54y4JAHnUpQAhqTyTSd8KhsxwR8dpbaQWVPZpgauSmIJD8 +UGB7+42WWqXWUR3Ln+NUA6tz/yxVU8npNXBIlrFnFhs9n1abSYseDafs82GrkeEJ +SrFXyiryoasAT8a+L7AFfZ205PY4eUEpQBYKt7Zfz9N/rPSAYu/b95ZZEHIfuZJq +lFkOcvI3MxeHlogX4oOaZbT5CkPbZZIFxW8vwv2tUsclTglpaFWHCdhW1dQzha7s +MIIG8PGB1PnOhKGL0p17hURQFpn+5I0/f5DOTo9xzqY7+3dbz12rugRngsGJgzoI +1+QRltpJAoGBANoLlFjI+VidBd/V1epL6dFZ+UJbCo14JvZ7DEBSBDhP/XlDdwk2 +WwVIAzeAfKasM1Tbfn0Sed8t2jc4awYMbq7iEWCTpegYfZS35bY1tRdaLw6Mj81P +5HFJcTGsS14Sbaxe7sDpU1sFHyPa5uO4sPr8xPo4BBiJIGS/OR0hhUB9AoGBAMJo +TJ6tiNmNAkC3r0h3g/Rl9PBC0LaURNwY3j6zhHdHJTdu7OrMo9+xKSWHv1RiKCu+ +2e3dYxyQqk1T5Vi4eoA9k0L+EictPKbzsdJ0n3LWwDsd7uPwXjOv5V9kZVoIBGyT +QeDA2kLGSbPwp7nVn2Xw0sookb7uCfZRSPkzcxV7AoGAIridUtYN/rJicRZYDgsw +nIm7S3m74HM1oSJO/R8SVPVH47t+hRUGwXyKJphrQQ9CzUx2g+whRAzFJu3w/PGV +3ntZUQux65eax8fQ6Ib8408VFzgC3irOscuEHujUx5IfrMchNc7x2xihsM/23GRY +ql797upknJOZePGKYr0nvvECgYEAjPKHkofobyov1vIV8GlOTzRYiJU4sxb+ccDJ +6RXIVZ5MWktfE8D4kubkGSS5UBm2XDkL0cwv3nb4MgZAgrmFf1KlYO3KBYNjtPt8 +EkShkeYnCvVhzPrpoXnGyAmG/eZQJtQA8E2CMOWIbCBvymkaHxOiEBWnzZDRwjce +vCZUKt8CgYBNrGGKW5pauMrIFGlvhjSOHZe6Yzjuk5L8/ScvirJfpz2NnF314dlL +mETWNzPvXEGkRtCcdfol5o8u+/WEtuZ1PyvrPwfvu0xzsFqf0onu5GtgNZgmDhW+ +dE2NG6YmB8kvlLKhVA/LgkE/VT2nI9larPJt1NL2eDnU5a56f8QYzw== +-----END RSA PRIVATE KEY----- diff --git a/client/src/client/packet.h b/client/src/client/packet.h index aba5783..e197bf0 100644 --- a/client/src/client/packet.h +++ b/client/src/client/packet.h @@ -9,7 +9,20 @@ constexpr size_t message_len = 512; enum packet_type { write = 0, read }; -enum packet_id { message = 0, hwid, session, login_req, login_resp, process_list, ban }; +enum packet_id { + message = 0, + hwid, + session, + login_req, + login_resp, + process_list, + ban, + game_select, + image_req, + image_resp, + import_req, + import_resp +}; struct packet_t { std::string message; diff --git a/client/src/injection/mapper.h b/client/src/injection/mapper.h new file mode 100644 index 0000000..ef06a9b --- /dev/null +++ b/client/src/injection/mapper.h @@ -0,0 +1,10 @@ +#pragma once + + +namespace mmap { + struct header { + size_t image_size; + uint32_t entry; + uint32_t base; + }; +};
\ No newline at end of file diff --git a/client/src/main.cpp b/client/src/main.cpp index 330096c..09db5cb 100644 --- a/client/src/main.cpp +++ b/client/src/main.cpp @@ -2,6 +2,7 @@ #include "util/io.h" #include "client/client.h" #include "assembler/shellcode.h" +#include "injection/mapper.h" int main(int argc, char* argv[]) { io::init(); @@ -80,7 +81,9 @@ int main(int argc, char* argv[]) { } if (res == tcp::login_result::login_success) { - client.state = tcp::client_state::waiting; + client.state = tcp::client_state::logged_in; + + io::logger->info("logged in."); } diff --git a/server/src/forum/forum.cpp b/server/src/forum/forum.cpp index ed2ae58..a714cc6 100644 --- a/server/src/forum/forum.cpp +++ b/server/src/forum/forum.cpp @@ -41,16 +41,31 @@ int xenforo_forum::check_login(const std::string_view username, auto json = nlohmann::json::parse(response); - data.banned = json["user"]["is_banned"].get<bool>(); + if(!json.contains("user")) { + io::logger->error("json response for user {} doesn't contain user field.", + username); + return forum_response::api_fail; + } + + auto user = json["user"]; + + if (!user.contains("custom_fields")) { + io::logger->error( + "json response for user {} doesn't contain custom fields.", username); + return forum_response::api_fail; + } + + auto custom_fields = user["custom_fields"]; + + data.banned = user["is_banned"].get<bool>(); // data.active = check user groupm - auto custom_fields = json["user"]["custom_fields"]; if (custom_fields.contains("hwid")) { - data.hwid = json["user"]["custom_fields"]["hwid"].get<std::string>(); + data.hwid = custom_fields["hwid"].get<std::string>(); } else { io::logger->warn("hwid field doesn't exist for {}.", username); } - data.id = json["user"]["user_id"].get<int>(); + data.id = user["user_id"].get<int>(); return forum_response::api_success; } diff --git a/server/src/image/pe.h b/server/src/image/pe.h index c642672..2199411 100644 --- a/server/src/image/pe.h +++ b/server/src/image/pe.h @@ -28,6 +28,9 @@ class image { std::vector<std::pair<uint32_t, win::reloc_entry_t>> m_relocs; public: + image() = default; + ~image() = default; + image(const std::string_view name) : m_image{nullptr} { if (!io::read_file(name, m_buffer)) { io::logger->error("failed to load image {}.", name); @@ -117,12 +120,12 @@ class image { } } - const auto operator()() { return m_image; } + const auto operator->() { return m_image; } operator bool() const { return m_image != nullptr; } - auto imports() const { return m_imports; } - auto relocs() const { return m_relocs; } - auto sections() const { return m_sections; } + auto &imports() const { return m_imports; } + auto &relocs() const { return m_relocs; } + auto §ions() const { return m_sections; } std::string get_json_imports() { nlohmann::json json; diff --git a/server/src/main.cpp b/server/src/main.cpp index d70b4cf..81de12e 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -2,7 +2,6 @@ #include "util/io.h" #include "util/commands.h" #include "server/server.h" -#include "image/pe.h" constexpr std::string_view version{"0.1.0"}; @@ -138,6 +137,8 @@ int main(int argc, char* argv[]) { } json["result"] = tcp::client_response::login_success; + json["games"]["csgo"] = {{"version", 1.2}, {"id", 0}}; + json["games"]["csgo beta"] = {{"version", 1.2}, {"id", 1}}; client.write(tcp::packet_t(json.dump(), tcp::packet_type::write, session, tcp::packet_id::login_resp)); diff --git a/server/src/server/packet.h b/server/src/server/packet.h index 203382e..77bca7b 100644 --- a/server/src/server/packet.h +++ b/server/src/server/packet.h @@ -9,7 +9,20 @@ constexpr size_t message_len = 512; enum packet_type { write = 0, read }; -enum packet_id { message = 0, hwid, session, login_req, login_resp, process_list, ban }; +enum packet_id { + message = 0, + hwid, + session, + login_req, + login_resp, + process_list, + ban, + game_select, + image_req, + image_resp, + import_req, + import_resp +}; struct packet_t { std::string message; diff --git a/server/src/server/server.h b/server/src/server/server.h index 7fa5dc4..738558b 100644 --- a/server/src/server/server.h +++ b/server/src/server/server.h @@ -3,6 +3,7 @@ #include "../util/events.h" #include "../client/blacklist.h" #include "../forum/forum.h" +#include "../image/pe.h" #include "ssl.h" namespace tcp { |