diff options
Diffstat (limited to 'client/src')
| -rw-r--r-- | client/src/assembler/opcodes.h | 9 | ||||
| -rw-r--r-- | client/src/assembler/shellcode.cpp (renamed from client/src/assembler/assembler.cpp) | 10 | ||||
| -rw-r--r-- | client/src/assembler/shellcode.h (renamed from client/src/assembler/assembler.h) | 6 | ||||
| -rw-r--r-- | client/src/client/client.cpp | 25 | ||||
| -rw-r--r-- | client/src/client/client.h | 14 | ||||
| -rw-r--r-- | client/src/include.h | 17 | ||||
| -rw-r--r-- | client/src/main.cpp | 4 |
7 files changed, 42 insertions, 43 deletions
diff --git a/client/src/assembler/opcodes.h b/client/src/assembler/opcodes.h deleted file mode 100644 index 5268b45..0000000 --- a/client/src/assembler/opcodes.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - - -namespace assembler { - enum opcodes : uint8_t { - nop = 0x90, - ret = 0xc3 - }; -};
\ No newline at end of file diff --git a/client/src/assembler/assembler.cpp b/client/src/assembler/shellcode.cpp index cf41ad1..af3160b 100644 --- a/client/src/assembler/assembler.cpp +++ b/client/src/assembler/shellcode.cpp @@ -1,9 +1,9 @@ #include "../include.h" -#include "assembler.h" +#include "shellcode.h" -void assembler::start() {} +void sc::start() {} -void assembler::push(const std::vector<uintptr_t>& args) { +void sc::push(const std::vector<uintptr_t>& args) { if (!m_x64) { for (auto it = args.rbegin(); it != args.rend(); ++it) { m_assembler.push(*it); @@ -14,9 +14,9 @@ void assembler::push(const std::vector<uintptr_t>& args) { // 64bit impl } -void assembler::call(const uintptr_t addr) {} +void sc::call(const uintptr_t addr) {} -void assembler::end() { +void sc::end() { if (m_x64) { } diff --git a/client/src/assembler/assembler.h b/client/src/assembler/shellcode.h index 00c7362..6fb2f61 100644 --- a/client/src/assembler/assembler.h +++ b/client/src/assembler/shellcode.h @@ -1,10 +1,8 @@ #pragma once -#include <asmjit/src/asmjit/asmjit.h> - using namespace asmjit; -class assembler { +class sc { std::vector<uint8_t> m_buf; CodeHolder m_code; @@ -13,7 +11,7 @@ class assembler { bool m_x64; public: - assembler(const bool x64 = false) : m_x64{x64} { + sc(const bool x64 = false) : m_x64{x64} { Environment env(x64 ? Environment::kArchX64 : Environment::kArchX86); m_code.init(env); 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 4239651..40b8e53 100644 --- a/client/src/client/client.h +++ b/client/src/client/client.h @@ -27,8 +27,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; @@ -48,11 +48,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); @@ -75,9 +75,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..562b52f 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,11 @@ #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 <wolfssl/ssl.h> + +#include <asmjit/src/asmjit/asmjit.h>
\ No newline at end of file diff --git a/client/src/main.cpp b/client/src/main.cpp index cef083f..330096c 100644 --- a/client/src/main.cpp +++ b/client/src/main.cpp @@ -1,7 +1,7 @@ #include "include.h" #include "util/io.h" #include "client/client.h" -#include "assembler/assembler.h" +#include "assembler/shellcode.h" int main(int argc, char* argv[]) { io::init(); @@ -114,4 +114,6 @@ int main(int argc, char* argv[]) { break; } } + + std::cin.get(); } |