Skip to content

Instantly share code, notes, and snippets.

@c22dev
Last active January 8, 2024 18:49
Show Gist options
  • Save c22dev/ec3fcc7e5c2812739240baffecce31e6 to your computer and use it in GitHub Desktop.
Save c22dev/ec3fcc7e5c2812739240baffecce31e6 to your computer and use it in GitHub Desktop.
iPads A12X/Z Offsets (try 0 then 1)
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a389288,
.kernelcache__gPhysBase = 0xfffffff0079340e0,
.kernelcache__gPhysSize = 0xfffffff0079340e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079322b8,
.kernelcache__perfmon_devices = 0xfffffff00a3c7500,
.kernelcache__perfmon_dev_open = 0xfffffff007eedc8c,
.kernelcache__ptov_table = 0xfffffff0078e7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a3c6990,
.kernelcache__vm_pages = 0xfffffff0078e3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078e6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a3c6988,
.kernelcache__vn_kqfilter = 0xfffffff007f3cad8,
},
};
#endif /* dynamic_info_h */
/*
* Copyright (c) 2023 Félix Poulin-Bélanger. All rights reserved.
*/
#ifndef dynamic_info_h
#define dynamic_info_h
struct dynamic_info {
const char* kern_version;
// struct fileglob
u64 fileglob__fg_ops;
u64 fileglob__fg_data;
// struct fileops
u64 fileops__fo_kqfilter;
// struct fileproc
// u64 fileproc__fp_iocount;
// u64 fileproc__fp_vflags;
// u64 fileproc__fp_flags;
// u64 fileproc__fp_guard_attrs;
// u64 fileproc__fp_glob;
// u64 fileproc__fp_guard;
// u64 fileproc__object_size;
// struct fileproc_guard
u64 fileproc_guard__fpg_guard;
// struct kqworkloop
u64 kqworkloop__kqwl_state;
u64 kqworkloop__kqwl_p;
u64 kqworkloop__kqwl_owner;
u64 kqworkloop__kqwl_dynamicid;
u64 kqworkloop__object_size;
// struct pmap
u64 pmap__tte;
u64 pmap__ttep;
// struct proc
u64 proc__p_list__le_next;
u64 proc__p_list__le_prev;
u64 proc__p_pid;
u64 proc__p_fd__fd_ofiles;
u64 proc__object_size;
// struct pseminfo
u64 pseminfo__psem_usecount;
u64 pseminfo__psem_uid;
u64 pseminfo__psem_gid;
u64 pseminfo__psem_name;
u64 pseminfo__psem_semobject;
// struct psemnode
// u64 psemnode__pinfo;
// u64 psemnode__padding;
// u64 psemnode__object_size;
// struct semaphore
u64 semaphore__owner;
// struct specinfo
u64 specinfo__si_rdev;
// struct task
u64 task__map;
u64 task__threads__next;
u64 task__threads__prev;
u64 task__itk_space;
u64 task__object_size;
// struct thread
u64 thread__task_threads__next;
u64 thread__task_threads__prev;
u64 thread__map;
u64 thread__thread_id;
u64 thread__object_size;
// struct uthread
u64 uthread__object_size;
// struct vm_map_entry
u64 vm_map_entry__links__prev;
u64 vm_map_entry__links__next;
u64 vm_map_entry__links__start;
u64 vm_map_entry__links__end;
u64 vm_map_entry__store__entry__rbe_left;
u64 vm_map_entry__store__entry__rbe_right;
u64 vm_map_entry__store__entry__rbe_parent;
// struct vnode
u64 vnode__v_un__vu_specinfo;
// struct _vm_map
u64 _vm_map__hdr__links__prev;
u64 _vm_map__hdr__links__next;
u64 _vm_map__hdr__links__start;
u64 _vm_map__hdr__links__end;
u64 _vm_map__hdr__nentries;
u64 _vm_map__hdr__rb_head_store__rbh_root;
u64 _vm_map__pmap;
u64 _vm_map__hint;
u64 _vm_map__hole_hint;
u64 _vm_map__holes_list;
u64 _vm_map__object_size;
// kernelcache static addresses
u64 kernelcache__kernel_base;
u64 kernelcache__cdevsw;
u64 kernelcache__gPhysBase;
u64 kernelcache__gPhysSize;
u64 kernelcache__gVirtBase;
u64 kernelcache__perfmon_devices;
u64 kernelcache__perfmon_dev_open;
u64 kernelcache__ptov_table;
u64 kernelcache__vm_first_phys_ppnum;
u64 kernelcache__vm_pages;
u64 kernelcache__vm_page_array_beginning_addr;
u64 kernelcache__vm_page_array_ending_addr;
u64 kernelcache__vn_kqfilter;
};
const struct dynamic_info kern_versions[] = {
{
.kern_version = "Darwin Kernel Version 22.5.0: Mon Apr 24 21:10:51 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8020",
.fileglob__fg_ops = 0x28,
.fileglob__fg_data = 0x40 - 8,
.fileops__fo_kqfilter = 0x30,
// .fileproc__fp_iocount = 0x0000,
// .fileproc__fp_vflags = 0x0004,
// .fileproc__fp_flags = 0x0008,
// .fileproc__fp_guard_attrs = 0x000a,
// .fileproc__fp_glob = 0x0010,
// .fileproc__fp_guard = 0x0018,
// .fileproc__object_size = 0x0020,
.fileproc_guard__fpg_guard = 0x8,
.kqworkloop__kqwl_state = 0x10,
.kqworkloop__kqwl_p = 0x18,
.kqworkloop__kqwl_owner = 0xd0,
.kqworkloop__kqwl_dynamicid = 0xd0 + 0x18,
.kqworkloop__object_size = 0x108,
.pmap__tte = 0x0,
.pmap__ttep = 0x8,
.proc__p_list__le_next = 0x0,
.proc__p_list__le_prev = 0x8,
.proc__p_pid = 0x60,
.proc__p_fd__fd_ofiles = 0xf8,
.proc__object_size = 0x730,
.pseminfo__psem_usecount = 0x04,
.pseminfo__psem_uid = 0x0c,
.pseminfo__psem_gid = 0x10,
.pseminfo__psem_name = 0x14,
.pseminfo__psem_semobject = 0x38,
// .psemnode__pinfo = 0x0000,
// .psemnode__padding = 0x0008,
// .psemnode__object_size = 0x0010,
.semaphore__owner = 0x28,
.specinfo__si_rdev = 0x18,
.task__map = 0x28,
.task__threads__next = 0x80 - 0x28,
.task__threads__prev = 0x80 - 0x28 + 8,
.task__itk_space = 0x300,
.task__object_size = 0x628,
.thread__task_threads__next = 0x368 - 0x18,
.thread__task_threads__prev = 0x368 - 0x18 + 8,
.thread__map = 0x368,
.thread__thread_id = 0x400,
.thread__object_size = 0x4a8,
.uthread__object_size = 0x200,
.vm_map_entry__links__prev = 0x00,
.vm_map_entry__links__next = 0x08,
.vm_map_entry__links__start = 0x10,
.vm_map_entry__links__end = 0x18,
.vm_map_entry__store__entry__rbe_left = 0x20,
.vm_map_entry__store__entry__rbe_right = 0x28,
.vm_map_entry__store__entry__rbe_parent = 0x30,
.vnode__v_un__vu_specinfo = 0x78,
._vm_map__hdr__links__prev = 0x00 + 0x8,
._vm_map__hdr__links__next = 0x08 + 0x8,
._vm_map__hdr__links__start = 0x10 + 0x8,
._vm_map__hdr__links__end = 0x18 + 0x8,
._vm_map__hdr__nentries = 0x30,
._vm_map__hdr__rb_head_store__rbh_root = 0x38,
._vm_map__pmap = 0x40,
._vm_map__hint = 0x90 + 0x08,
._vm_map__hole_hint = 0x90 + 0x10,
._vm_map__holes_list = 0x90 + 0x18,
._vm_map__object_size = 0xc0,
.kernelcache__kernel_base = 0xfffffff007004000,
.kernelcache__cdevsw = 0xfffffff00a3f1288,
.kernelcache__gPhysBase = 0xfffffff0079440e0,
.kernelcache__gPhysSize = 0xfffffff0079440e0 + 8,
.kernelcache__gVirtBase = 0xfffffff0079422b8,
.kernelcache__perfmon_devices = 0xfffffff00a42f500,
.kernelcache__perfmon_dev_open = 0xfffffff007f01c8c,
.kernelcache__ptov_table = 0xfffffff0078f7160,
.kernelcache__vm_first_phys_ppnum = 0xfffffff00a42e990,
.kernelcache__vm_pages = 0xfffffff0078f3ea8,
.kernelcache__vm_page_array_beginning_addr = 0xfffffff0078f6110,
.kernelcache__vm_page_array_ending_addr = 0xfffffff00a42e988,
.kernelcache__vn_kqfilter = 0xfffffff007f50ad8,
},
};
#endif /* dynamic_info_h */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment