diff options
author | Michael Smith <mikesmiffy128@gmail.com> | 2024-01-21 21:59:23 +0000 |
---|---|---|
committer | Michael Smith <mikesmiffy128@gmail.com> | 2024-01-21 22:02:14 +0000 |
commit | 670488716dde7ba7813dd281f24403a0b24d8690 (patch) | |
tree | 9b138c009e4131e32ed7bf4645e3eba7f8a5b18d /src/hook.c | |
parent | 506f095bcb528468f25a637977efcc408590ae67 (diff) |
Rethink mem_loadoffset, and consequently, kill it
Suggested by bill. Having something semantically pointer-sized that's
only ever used for stuff that's always 32-bit doesn't really make sense.
Note that I intentionally did not add a copyright line for myself in
hud.c because, I mean, come on. I'll just say I waive any claim to that
tiny trivial change.
Diffstat (limited to 'src/hook.c')
-rw-r--r-- | src/hook.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1,5 +1,5 @@ /* - * Copyright © 2023 Michael Smith <mikesmiffy128@gmail.com> + * Copyright © 2024 Michael Smith <mikesmiffy128@gmail.com> * Copyright © 2022 Willian Henrique <wsimanbrazil@yahoo.com.br> * * Permission to use, copy, modify, and/or distribute this software for any @@ -59,7 +59,7 @@ void *hook_inline(void *func_, void *target) { uchar *func = func_; // dumb hack: if we hit some thunk that immediately jumps elsewhere (which // seems common for win32 API functions), hook the underlying thing instead. - while (*func == X86_JMPIW) func += mem_loadoffset(func + 1) + 5; + while (*func == X86_JMPIW) func += mem_loads32(func + 1) + 5; if (!os_mprot(func, 5, PAGE_EXECUTE_READWRITE)) return false; int len = 0; for (;;) { @@ -105,7 +105,7 @@ void *hook_inline(void *func_, void *target) { void unhook_inline(void *orig) { uchar *p = orig; int len = p[-1]; - int off = mem_load32(p + len + 1); + int off = mem_loads32(p + len + 1); uchar *q = p + off + 5; memcpy(q, p, 5); // XXX: not atomic atm! (does any of it even need to be?) iflush(q, 5); |