fishhook初学者提问:
关于fishhook malloc_logger,在libmalloc中找到malloc_logger是一个结构体:
typedef void(malloc_logger_t)(uint32_t type,
uintptr_t arg1,
uintptr_t arg2,
uintptr_t arg3,
uintptr_t result,
uint32_t num_hot_frames_to_skip);
fishhook malloc_logger没有任何作用,然后在_malloc_initialize方法里面,找到这句malloc_logger = __disk_stack_logging_log_stack;
fishhhok __disk_stack_logging_log_stack同样不起作用,现在无从下手,请指教。
我的fishhook方法如下:
static void (*original_disk_stack_logging_log_stack)(uint32_t type_flags,
uintptr_t zone_ptr,
uintptr_t arg2,
uintptr_t arg3,
uintptr_t return_val,
uint32_t num_hot_to_skip);
void new_disk_stack_logging_log_stack(uint32_t type_flags,
uintptr_t zone_ptr,
uintptr_t arg2,
uintptr_t arg3,
uintptr_t return_val,
uint32_t num_hot_to_skip) {
NSLog(@"========== __disk_stack_logging_log_stack ==========");
}
struct rebinding malloc_logger_rebinding = { "__disk_stack_logging_log_stack", original_disk_stack_logging_log_stack, (void *)&original_disk_stack_logging_log_stack};
rebind_symbols((struct rebinding[1]){malloc_logger_rebinding}, 1);
展开