fix v8 hook x64
This commit is contained in:
parent
666b0a49c0
commit
e14c9b6a09
@ -4,7 +4,7 @@
|
|||||||
// 8/23/2013 jichi
|
// 8/23/2013 jichi
|
||||||
// Branch: ITH/common.h, rev 128
|
// Branch: ITH/common.h, rev 128
|
||||||
|
|
||||||
enum { STRING = 12, MESSAGE_SIZE = 500, PIPE_BUFFER_SIZE = 2000, SHIFT_JIS = 932, MAX_MODULE_SIZE = 120, PATTERN_SIZE = 30, HOOK_NAME_SIZE = 30, FIXED_SPLIT_VALUE = 0x10001 };
|
enum { STRING = 12, MESSAGE_SIZE = 500, PIPE_BUFFER_SIZE = 10000, SHIFT_JIS = 932, MAX_MODULE_SIZE = 120, PATTERN_SIZE = 30, HOOK_NAME_SIZE = 30, FIXED_SPLIT_VALUE = 0x10001 };
|
||||||
enum WildcardByte { XX = 0x11 };
|
enum WildcardByte { XX = 0x11 };
|
||||||
|
|
||||||
enum HostCommandType { HOST_COMMAND_NEW_HOOK, HOST_COMMAND_REMOVE_HOOK, HOST_COMMAND_FIND_HOOK, HOST_COMMAND_MODIFY_HOOK, HOST_COMMAND_HIJACK_PROCESS, HOST_COMMAND_DETACH };
|
enum HostCommandType { HOST_COMMAND_NEW_HOOK, HOST_COMMAND_REMOVE_HOOK, HOST_COMMAND_FIND_HOOK, HOST_COMMAND_MODIFY_HOOK, HOST_COMMAND_HIJACK_PROCESS, HOST_COMMAND_DETACH };
|
||||||
|
@ -10351,16 +10351,15 @@ bool InsertV8Hook(HMODULE module)
|
|||||||
0x5d, // pop ebp
|
0x5d, // pop ebp
|
||||||
0xc2 // ret
|
0xc2 // ret
|
||||||
};
|
};
|
||||||
if (hp.address)
|
if (DWORD addr = MemDbg::findBytes(bytes, sizeof(bytes), hp.address, hp.address + 0x30))
|
||||||
if (DWORD addr = MemDbg::findBytes(bytes, sizeof(bytes), hp.address, hp.address + 0x30))
|
{
|
||||||
{
|
hp.address = addr;
|
||||||
hp.address = addr;
|
hp.offset = 0x8 + *(BYTE*)(addr + 2); // second argument + amount that the stack pointer is offset from arguments
|
||||||
hp.offset = 0x8 + *(BYTE*)(addr + 2); // second argument + amount that the stack pointer is offset from arguments
|
hp.type = USING_UNICODE | USING_STRING | NO_CONTEXT;
|
||||||
hp.type = USING_UNICODE | USING_STRING | NO_CONTEXT;
|
hp.length_offset = (0x10 + *(BYTE*)(addr + 2)) / 4; // fourth argument + amount that the stack pointer is offset from arguments
|
||||||
hp.length_offset = (0x10 + *(BYTE*)(addr + 2)) / 4; // fourth argument + amount that the stack pointer is offset from arguments
|
hp.text_fun = nullptr;
|
||||||
hp.text_fun = nullptr;
|
NewHook(hp, "JavaScript2");
|
||||||
NewHook(hp, "JavaScript2");
|
}
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ namespace Engine
|
|||||||
even though this should get the true length mono uses internally
|
even though this should get the true length mono uses internally
|
||||||
there's still some garbage picked up on https://vndb.org/v20403 demo, don't know why */
|
there's still some garbage picked up on https://vndb.org/v20403 demo, don't know why */
|
||||||
int len = *(int*)(data - 4);
|
int len = *(int*)(data - 4);
|
||||||
return len > 0 && len < 1000 ? len * 2 : 0;
|
return len > 0 && len < PIPE_BUFFER_SIZE ? len * 2 : 0;
|
||||||
};
|
};
|
||||||
NewHook(hp, name);
|
NewHook(hp, name);
|
||||||
}
|
}
|
||||||
@ -139,7 +139,7 @@ namespace Engine
|
|||||||
hp.length_fun = [](uintptr_t, uintptr_t data)
|
hp.length_fun = [](uintptr_t, uintptr_t data)
|
||||||
{
|
{
|
||||||
int len = *(int*)(data - 4);
|
int len = *(int*)(data - 4);
|
||||||
return len > 0 && len < 1000 ? len * 2 : 0;
|
return len > 0 && len < PIPE_BUFFER_SIZE ? len * 2 : 0;
|
||||||
};
|
};
|
||||||
NewHook(hp, "JavaScript");
|
NewHook(hp, "JavaScript");
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user