diff options
| author | boris <wzn@moneybot.cc> | 2018-12-03 09:12:05 +1300 |
|---|---|---|
| committer | boris <wzn@moneybot.cc> | 2018-12-03 09:12:05 +1300 |
| commit | 4047e9083ef1731847bcd75f361f2d611fe5e401 (patch) | |
| tree | 7863f8e812c486b3c2ff91896bf1a13cf2b4bfc6 /loader/server/manual_map.cpp | |
| parent | 1df2eab5aca4761fc929c9a92b20c9f7ddabc990 (diff) | |
gay
Diffstat (limited to 'loader/server/manual_map.cpp')
| -rw-r--r-- | loader/server/manual_map.cpp | 15 |
1 files 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<decltype(dos_header)>(m_pe.data());
+ nt_headers = reinterpret_cast<decltype(nt_headers)>(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<decltype(reloc)>(m_pe.data() + address);
|
