From fd173298abf775de4275db48a2870f0fea9b6bc5 Mon Sep 17 00:00:00 2001 From: Pwn20wnd Date: Sun, 10 Feb 2019 20:33:23 +0300 Subject: Use task_info(TASK_DYLD_INFO) to get the kernel base --- main.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'main.m') diff --git a/main.m b/main.m index e784804..17b7e00 100644 --- a/main.m +++ b/main.m @@ -39,7 +39,13 @@ int main(int argc, char* argv[]) { if (tfp0 == MACH_PORT_NULL) return -2; set_tfp0(tfp0); - uint64_t kernel_base = get_kernel_base(tfp0); + uint64_t kernel_base = 0; + struct task_dyld_info dyld_info = { 0 }; + mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT; + if (task_info(tfp0, TASK_DYLD_INFO, (task_info_t)&dyld_info, &count) != KERN_SUCCESS || + (kernel_base = dyld_info.all_image_info_addr) == 0) { + return -3; + } init_kernel(kernel_base, NULL); uint64_t trust_chain = find_trustcache(); term_kernel(); -- cgit v1.2.3