diff options
| author | auth12 <[email protected]> | 2020-07-19 11:57:04 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-07-19 11:57:04 -0700 |
| commit | 1bae439a35a3aadca6772716aaeea8c8a0991114 (patch) | |
| tree | f8eab7a7bae237ad697feecfae26b17bab91b16e /client/src | |
| parent | More placeholders and general plan. (diff) | |
| parent | Merge branch 'master' into windows (diff) | |
| download | loader-1bae439a35a3aadca6772716aaeea8c8a0991114.tar.xz loader-1bae439a35a3aadca6772716aaeea8c8a0991114.zip | |
Merge pull request #1 from auth12/windows
Windows
Diffstat (limited to 'client/src')
| -rw-r--r-- | client/src/client/client.cpp | 25 | ||||
| -rw-r--r-- | client/src/client/client.h | 17 | ||||
| -rw-r--r-- | client/src/include.h | 20 | ||||
| -rw-r--r-- | client/src/main.cpp | 2 | ||||
| -rw-r--r-- | client/src/shellcode/shellcode.h | 2 | ||||
| -rw-r--r-- | client/src/util/io.h | 4 |
6 files changed, 40 insertions, 30 deletions
diff --git a/client/src/client/client.cpp b/client/src/client/client.cpp index 43ee6c7..8e71e81 100644 --- a/client/src/client/client.cpp +++ b/client/src/client/client.cpp @@ -2,23 +2,30 @@ #include "client.h" void tcp::client::start(const std::string_view server_ip, const uint16_t port) { - SSL_library_init(); + wolfSSL_library_init(); - m_ssl_ctx = SSL_CTX_new(TLS_client_method()); + m_ssl_ctx = wolfSSL_CTX_new(wolfTLS_client_method()); - int ret = SSL_CTX_load_verify_locations(m_ssl_ctx, "ssl/rootCA.crt", nullptr); + int ret = wolfSSL_CTX_load_verify_locations(m_ssl_ctx, "ssl/rootCA.crt", nullptr); if (ret != 1) { io::logger->error("failed to load ca."); return; } - SSL_CTX_set_verify(m_ssl_ctx, SSL_VERIFY_PEER, 0); + wolfSSL_CTX_set_verify(m_ssl_ctx, SSL_VERIFY_PEER, 0); + + WSADATA data; + ret = WSAStartup(MAKEWORD(2, 2), &data); + if (ret != 0) { + io::logger->error("failed to initialize WSA."); + return; + } m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (m_socket == -1) { io::logger->error("failed to create socket."); return; } - + sockaddr_in server_addr; server_addr.sin_family = AF_INET; @@ -32,13 +39,13 @@ void tcp::client::start(const std::string_view server_ip, const uint16_t port) { return; } - m_server_ssl = SSL_new(m_ssl_ctx); - SSL_set_fd(m_server_ssl, m_socket); + m_server_ssl = wolfSSL_new(m_ssl_ctx); + wolfSSL_set_fd(m_server_ssl, m_socket); - ret = SSL_connect(m_server_ssl); + ret = wolfSSL_connect(m_server_ssl); if (ret != 1) { - ret = SSL_get_error(m_server_ssl, ret); + ret = wolfSSL_get_error(m_server_ssl, ret); io::logger->error("secure connection failed, code {}", ret); return; } diff --git a/client/src/client/client.h b/client/src/client/client.h index bdd7cf5..3a888fb 100644 --- a/client/src/client/client.h +++ b/client/src/client/client.h @@ -1,4 +1,7 @@ #pragma once + +#include <wolfssl/ssl.h> + #include "../util/io.h" #include "../util/events.h" #include "../injection/mapper.h" @@ -28,8 +31,8 @@ class client { int m_socket; std::atomic<bool> m_active; - SSL* m_server_ssl; - SSL_CTX* m_ssl_ctx; + WOLFSSL* m_server_ssl; + WOLFSSL_CTX* m_ssl_ctx; public: int state; @@ -50,11 +53,11 @@ class client { } int write(const void* data, size_t size) { - return SSL_write(m_server_ssl, data, size); + return wolfSSL_write(m_server_ssl, data, size); } int read(void* data, size_t size) { - return SSL_read(m_server_ssl, data, size); + return wolfSSL_read(m_server_ssl, data, size); } int read_stream(std::vector<char>& out); @@ -77,9 +80,9 @@ class client { operator bool() const { return m_active; } void shutdown() { - close(m_socket); - SSL_shutdown(m_server_ssl); - SSL_free(m_server_ssl); + closesocket(m_socket); + wolfSSL_shutdown(m_server_ssl); + wolfSSL_free(m_server_ssl); m_active = false; } diff --git a/client/src/include.h b/client/src/include.h index fe46e5a..a810eed 100644 --- a/client/src/include.h +++ b/client/src/include.h @@ -1,6 +1,12 @@ #pragma once + +#include <windows.h> #include <stdio.h> +#include <winsock2.h> +#include <ws2tcpip.h> +#include <iphlpapi.h> + #include <algorithm> #include <array> #include <chrono> @@ -26,16 +32,4 @@ #include <future> #include <any> -#include <arpa/inet.h> -#include <netdb.h> -#include <netinet/in.h> -#include <sys/socket.h> -#include <sys/types.h> -#include <unistd.h> - -#include <spdlog/fmt/fmt.h> -#include <spdlog/spdlog.h> -#include <spdlog/sinks/basic_file_sink.h> -#include <spdlog/sinks/stdout_color_sinks.h> - -#include <openssl/ssl.h>
\ No newline at end of file +#include <spdlog/fmt/fmt.h>
\ No newline at end of file diff --git a/client/src/main.cpp b/client/src/main.cpp index 4413a44..f67ecf1 100644 --- a/client/src/main.cpp +++ b/client/src/main.cpp @@ -113,4 +113,6 @@ int main(int argc, char* argv[]) { break; } } + + std::cin.get(); } diff --git a/client/src/shellcode/shellcode.h b/client/src/shellcode/shellcode.h index 5f0e135..4a87dca 100644 --- a/client/src/shellcode/shellcode.h +++ b/client/src/shellcode/shellcode.h @@ -1,6 +1,6 @@ #pragma once -#include <asmjit/src/asmjit/asmjit.h> +#include <asmjit/asmjit.h> using namespace asmjit; diff --git a/client/src/util/io.h b/client/src/util/io.h index 8eae321..b1a09f9 100644 --- a/client/src/util/io.h +++ b/client/src/util/io.h @@ -1,5 +1,9 @@ #pragma once +#include <spdlog/spdlog.h> +#include <spdlog/sinks/basic_file_sink.h> +#include <spdlog/sinks/stdout_color_sinks.h> + namespace io { extern std::shared_ptr<spdlog::logger> logger; |