Hasty Briefsbeta

双语

Compute iOS XNU offset from kernel cache

7 days ago
  • #XNU offsets
  • #reverse engineering
  • #kernel exploitation
  • 本文提出了一种从已剥离的内核缓存中提取内核结构偏移量的方法,该方法始于内核读写原语,并通过定位Mach-O签名展开。
  • 关键步骤包括参考XNU源代码,使用ARM64指令(如adrp/ldr)定位锚点(如全局变量,例如allproc、kernproc),并利用访问器函数(如proc_pid)来揭示字段偏移量。
  • 迭代器和构造函数(如proc_iterate、socreate_internal)有助于揭示结构布局,而系统调用实现(如chdir)则提供了关于字段偏移量以及内联与指针结构的深入见解。
  • 区域ID验证(例如zone_id_require_ro_panic)用于识别受保护的结构(如proc_ro),指针链分析则能够在无需直接访问器的情况下遍历内核对象。
  • 哈希表(如来自_proc_find)和ARM64指令分析有助于恢复复杂的数据结构,实际技巧强调函数簇的作用以及通过汇编确定字段大小。