aboutsummaryrefslogtreecommitdiff
path: root/subhook_x86.c
diff options
context:
space:
mode:
authorZeex <zeex@rocketmail.com>2014-10-04 17:33:01 +0700
committerZeex <zeex@rocketmail.com>2014-10-04 17:38:10 +0700
commit9e84a215c19ee2d632af0aca642af8aa6779d00c (patch)
treef6979c6abaa8b5cc2f646fca6b2fe8830c18be19 /subhook_x86.c
parent6f864d4877f0b864e3f9b9144e6778e2f5406149 (diff)
downloadsubhook-9e84a215c19ee2d632af0aca642af8aa6779d00c.zip
subhook-9e84a215c19ee2d632af0aca642af8aa6779d00c.tar.gz
subhook-9e84a215c19ee2d632af0aca642af8aa6779d00c.tar.bz2
Small refactoring & cleanup
Diffstat (limited to 'subhook_x86.c')
-rw-r--r--subhook_x86.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/subhook_x86.c b/subhook_x86.c
index 18ba6c5..a8d9a43 100644
--- a/subhook_x86.c
+++ b/subhook_x86.c
@@ -72,15 +72,21 @@ SUBHOOK_EXPORT int SUBHOOK_API subhook_install(subhook_t hook) {
return -EINVAL;
if (!hook->unlocked) {
- subhook_unprotect(hook->src, sizeof(jmp_instr));
- hook->unlocked = 1;
+ subhook_unlock(hook->src, sizeof(jmp_instr));
+ hook->unlocked = 1;
}
- memcpy(((struct subhook_x86 *)hook)->code, hook->src, sizeof(jmp_instr));
- memcpy(hook->src, &jmp_instr, sizeof(jmp_instr));
+ memcpy(((struct subhook_x86 *)hook)->code,
+ hook->src,
+ sizeof(jmp_instr));
+ memcpy(hook->src,
+ &jmp_instr,
+ sizeof(jmp_instr));
- offset = (intptr_t)hook->dst - ((intptr_t)hook->src + sizeof(jmp_instr));
- memcpy((void *)((intptr_t)hook->src + sizeof(jmp_opcode)), &offset,
+ offset = (intptr_t)hook->dst - (
+ (intptr_t)hook->src + sizeof(jmp_instr));
+ memcpy((void *)((intptr_t)hook->src + sizeof(jmp_opcode)),
+ &offset,
sizeof(jmp_instr) - sizeof(jmp_opcode));
hook->installed = 1;
@@ -91,7 +97,8 @@ SUBHOOK_EXPORT int SUBHOOK_API subhook_remove(subhook_t hook) {
if (!hook->installed)
return -EINVAL;
- memcpy(hook->src, ((struct subhook_x86 *)hook)->code,
+ memcpy(hook->src,
+ ((struct subhook_x86 *)hook)->code,
sizeof(jmp_instr));
hook->installed = 0;
@@ -106,7 +113,8 @@ SUBHOOK_EXPORT void *SUBHOOK_API subhook_read_dst(void *src) {
if (opcode != jmp_opcode)
return NULL;
- memcpy(&offset, (void *)((intptr_t)src + sizeof(jmp_opcode)),
+ memcpy(&offset,
+ (void *)((intptr_t)src + sizeof(jmp_opcode)),
sizeof(offset));
return (void *)(offset + (intptr_t)src + sizeof(jmp_instr));
}