aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorauth <[email protected]>2020-07-17 15:38:48 +0200
committerauth <[email protected]>2020-07-17 15:38:48 +0200
commit4f6ed0cbb36c6912feed7db96d963ad0b1145b02 (patch)
tree6391e1cc30bc329dd060ca009337ead762848264
parentRemoved un (diff)
parentAdded certificates. (diff)
downloadloader-4f6ed0cbb36c6912feed7db96d963ad0b1145b02.tar.xz
loader-4f6ed0cbb36c6912feed7db96d963ad0b1145b02.zip
Merge branch 'master' into windows
-rw-r--r--bin/ssl/rootCA.crt32
-rw-r--r--bin/ssl/rootCA.key51
-rw-r--r--bin/ssl/server.crt25
-rw-r--r--bin/ssl/server.key27
-rw-r--r--client/src/client/packet.h15
-rw-r--r--client/src/injection/mapper.h10
-rw-r--r--client/src/main.cpp5
-rw-r--r--server/src/forum/forum.cpp23
-rw-r--r--server/src/image/pe.h11
-rw-r--r--server/src/main.cpp3
-rw-r--r--server/src/server/packet.h15
-rw-r--r--server/src/server/server.h1
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 &sections() 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 {