aboutsummaryrefslogtreecommitdiff
path: root/client/src/util
diff options
context:
space:
mode:
authorauth12 <[email protected]>2020-08-03 21:08:06 +0100
committerauth12 <[email protected]>2020-08-03 21:08:06 +0100
commitad8cf7c80590b96ad4e61f3f4eb397704a22ee4b (patch)
treef376bc6ce8b7ababd4bcc67bee748c6e1d672b0c /client/src/util
parentStarted security. (diff)
downloadloader-ad8cf7c80590b96ad4e61f3f4eb397704a22ee4b.tar.xz
loader-ad8cf7c80590b96ad4e61f3f4eb397704a22ee4b.zip
Added ui.
Diffstat (limited to 'client/src/util')
-rw-r--r--client/src/util/native.h1
-rw-r--r--client/src/util/syscalls.cpp10
-rw-r--r--client/src/util/syscalls.h2
3 files changed, 8 insertions, 5 deletions
diff --git a/client/src/util/native.h b/client/src/util/native.h
index 31348ee..b5b0768 100644
--- a/client/src/util/native.h
+++ b/client/src/util/native.h
@@ -168,6 +168,5 @@ namespace native {
using NtQueryInformationProcess = NTSTATUS(__stdcall*)(HANDLE, PROCESSINFOCLASS, PVOID, SIZE_T, PULONG);
using NtWaitForSingleObject = NTSTATUS(__stdcall*)(HANDLE, BOOLEAN, PLARGE_INTEGER);
using NtCreateThreadEx = NTSTATUS(__stdcall*)(PHANDLE, ACCESS_MASK, PVOID, HANDLE, LPTHREAD_START_ROUTINE, PVOID, ULONG, ULONG_PTR, SIZE_T, SIZE_T, PVOID);
- using NtGetContextThread = NTSTATUS(__stdcall*)(HANDLE, PCONTEXT);
}; // namespace native \ No newline at end of file
diff --git a/client/src/util/syscalls.cpp b/client/src/util/syscalls.cpp
index a755d22..7de7c81 100644
--- a/client/src/util/syscalls.cpp
+++ b/client/src/util/syscalls.cpp
@@ -8,7 +8,13 @@ syscalls g_syscalls;
syscalls::syscalls() {
m_call_table = VirtualAlloc(0, 0x100000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
std::memset(m_call_table, 0x90, 0x100000);
+}
+
+syscalls::~syscalls() {
+ VirtualFree(m_call_table, 0, MEM_RELEASE);
+}
+void syscalls::init() {
io::log("syscalls call table : {:x}", uintptr_t(m_call_table));
static auto nt = pe::ntdll();
@@ -42,10 +48,6 @@ syscalls::syscalls() {
}
}
-syscalls::~syscalls() {
- VirtualFree(m_call_table, 0, MEM_RELEASE);
-}
-
bool syscalls::valid(const uintptr_t addr, const size_t& size) {
auto func = reinterpret_cast<uint8_t*>(addr);
diff --git a/client/src/util/syscalls.h b/client/src/util/syscalls.h
index 0855d18..ef3bfad 100644
--- a/client/src/util/syscalls.h
+++ b/client/src/util/syscalls.h
@@ -8,6 +8,8 @@ class syscalls {
public:
syscalls();
~syscalls();
+
+ void init();
bool valid(const uintptr_t func, const size_t& size);
uint16_t get_index(const uintptr_t va, uint16_t& offset);
size_t func_size(const uint8_t* func);