From 4047e9083ef1731847bcd75f361f2d611fe5e401 Mon Sep 17 00:00:00 2001 From: boris Date: Mon, 3 Dec 2018 09:12:05 +1300 Subject: gay --- loader/server/manual_map.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/loader/server/manual_map.cpp b/loader/server/manual_map.cpp index 86aae27..8198c3e 100644 --- a/loader/server/manual_map.cpp +++ b/loader/server/manual_map.cpp @@ -164,10 +164,21 @@ namespace inject { } bool c_mapper::process_imports(uint32_t /*remote_address*/) { + IMAGE_DOS_HEADER *dos_header; + IMAGE_NT_HEADERS *nt_headers; + + dos_header = reinterpret_cast(m_pe.data()); + nt_headers = reinterpret_cast(m_pe.data() + dos_header->e_lfanew); + + IMAGE_THUNK_DATA* orig_first_thunk; + IMAGE_THUNK_DATA* first_thunk; + IMAGE_IMPORT_DESCRIPTOR* import_dir; + IMAGE_IMPORT_BY_NAME* import_table; + return true; } - bool c_mapper::process_reloc(uint32_t /*remote_address*/) { + bool c_mapper::process_reloc(uint32_t remote_address) { IMAGE_DOS_HEADER *dos_header; IMAGE_NT_HEADERS *nt_headers; @@ -182,7 +193,7 @@ namespace inject { IMAGE_BASE_RELOCATION *reloc; uintptr_t address = nt_headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress; - uintptr_t delta = (uintptr_t)m_pe.data() - nt_headers->OptionalHeader.ImageBase; + uintptr_t delta = remote_address - nt_headers->OptionalHeader.ImageBase; reloc = reinterpret_cast(m_pe.data() + address); -- cgit v1.2.3