mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2024-12-22 20:17:24 +08:00
parent
e4349c6e2a
commit
e0ae6837d0
@ -35,7 +35,7 @@ namespace big
|
||||
return value == 0xE9;
|
||||
}
|
||||
|
||||
bool is_unwanted_dependency(__int64 cb)
|
||||
bool is_unwanted_dependency(__int64 cb, uint64_t caller_addr_offset)
|
||||
{
|
||||
auto f1 = *(__int64*)(cb + 0x60);
|
||||
auto f2 = *(__int64*)(cb + 0x100);
|
||||
@ -44,12 +44,24 @@ namespace big
|
||||
if (!is_address_in_game_region(f1) || !is_address_in_game_region(f2) || !is_address_in_game_region(f3))
|
||||
return false;
|
||||
|
||||
// These must run, otherwise we'll at some point run out of sysMemSimpleAllocator memory.
|
||||
if (caller_addr_offset == 0xAA03D4 || caller_addr_offset == 0xAA0A21 || caller_addr_offset == 0xAA0902)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return is_jump(f1) || is_jump(f2) || is_jump(f3);
|
||||
}
|
||||
|
||||
void hooks::queue_dependency(void* dependency)
|
||||
{
|
||||
if (is_unwanted_dependency((__int64)dependency))
|
||||
uint64_t caller_addr_offset = (uint64_t)_ReturnAddress();
|
||||
|
||||
static auto module_base = (uint64_t)GetModuleHandle(0);
|
||||
|
||||
caller_addr_offset -= module_base;
|
||||
|
||||
if (is_unwanted_dependency((__int64)dependency, caller_addr_offset))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user