From d4e2fe3f1a1d6d89e9110fa1361e942f57812e51 Mon Sep 17 00:00:00 2001 From: auth12 <67507608+auth12@users.noreply.github.com> Date: Tue, 28 Jul 2020 08:09:02 -0700 Subject: Added server support for both x64 and x32 images with automatic selection. --- client/src/util/io.h | 10 ++++++---- client/src/util/syscalls.cpp | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'client/src/util') diff --git a/client/src/util/io.h b/client/src/util/io.h index 400c089..03d6964 100644 --- a/client/src/util/io.h +++ b/client/src/util/io.h @@ -7,9 +7,10 @@ namespace io { template void log(const std::string_view str, Args... params) { - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN); + static auto handle = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleTextAttribute(handle, FOREGROUND_GREEN); fmt::print("$> "); - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED); + SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED); std::string msg{str}; msg.append("\n"); @@ -19,9 +20,10 @@ namespace io { template void log_error(const std::string_view str, Args... params) { - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED); + static auto handle = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleTextAttribute(handle, FOREGROUND_RED); fmt::print("$> "); - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED); + SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED); std::string msg{str}; msg.append("\n"); diff --git a/client/src/util/syscalls.cpp b/client/src/util/syscalls.cpp index e877932..96036a3 100644 --- a/client/src/util/syscalls.cpp +++ b/client/src/util/syscalls.cpp @@ -9,6 +9,8 @@ syscalls::syscalls() { m_call_table = VirtualAlloc(0, 0x100000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); std::memset(m_call_table, 0x90, 0x100000); + io::log("syscalls call table : {:#x}", uintptr_t(m_call_table)); + static auto nt = pe::virtual_image("ntdll.dll"); for (auto& exp : nt.exports()) { auto addr = exp.second; -- cgit v1.2.3