首页 > 解决方案 > 如何在 iOS 9.3.5 上找到适合 v0rtex 漏洞利用的 zone_map 偏移量?

问题描述

我正在APNonce借助 siguza 的v0rtex漏洞利用构建一个 setter 工具,目前,我拥有我需要的大部分偏移量,但无论我做什么,zone_map 偏移量似乎都是错误的。

我尝试了什么:

我解密了内核并将其加载到 macOS 上的 IDA 中。搜索字符串zone_map并没有发现任何相关内容。

搜索时我有点运气zone_init,但xref我关注的并没有领先任何地方。

我的设备是 iPod Touch 5 和 iOS 9.3.5。我找到的偏移量是0xffffffff0070d1aa4,但它会使内核恐慌,所以它不正确。

标签: ioscjailbreakexploit

解决方案


ZONE_MAP偏移量不是很容易找到,但我将在下面详细介绍一种应该有效的方法。

一个警告:我为此使用了 Hopper,而不是 IDA Pro。不过,您可以使用 Hopper 的演示版。

第 1 步:解密您的 KernelCache。确保它已被解密,否则所有其余步骤将基本上失败。您可以为此使用 Decrypt0r。当Decrypt0r喷出以下输出时,你知道你很好:

Enter key for /Users/geosn0w/Desktop/kernelcache.release.n78: 87aa19c72db6e662d6c3dbcf74da88026fda5a66469baa7e271725918133cd2f
Enter key IV for /Users/geosn0w/Desktop/kernelcache.release.n78: 2692e6004e6240aab57f2affa0daedc0
[DEBUG] Opening /Users/geosn0w/Desktop/kernelcache.release.n78
Parsed TYPE element
Parsed DATA element
Parsed SEPO element
Parsed KBAG element
Parsed KBAG element
File opened successfully
Setting Img3 Key and IV
Fetching KBAG element from image
Found KBAG element in image
KBAG Type = 256, State = 1
Decrypting Img3 file
Fetching DATA element from image
Found DATA element in image
Setting keys to decrypt with
Performing decryption...
magic = 0x706d6f63
Image compressed, decompressing
signature = 0x706d6f63
compression_type = 0x73737a6c
Found LZSS compression type
Found output file listed as /Users/geosn0w/Desktop/kernelcache.release.n78.dec
Image claims it's decrypted, dump raw data
Closing Img3 file
/Users/geosn0w/Desktop/kernelcache.release.n78.dec copied to the root of IPSW folder

第2步:打开Hopper Disassembler并弹出KernelCache 里面的解密文件。内核很大,所以给它时间来分析它。可能需要几分钟。

第 3 步:成功分析内核文件后,导航到 Hopper 中的 Strings 选项卡并搜索zone_init: kmem_suballoc failed.

第四步:双击出现的单个结果,然后双击DATA XREF: subXXXXXXXXXXX子程序交叉引用。

第 5 步:如果您完成了上述所有操作,您将跳转到一个包含类似 ; :lower16:(0x803bde69 - 0x80036856), "\\\"zone_init: kmem_suballoc failed\\\"", CODE XREF=sub_80032808+6204. 双击CODE XREF=sub_XXXXXXXX最右边的部分。

料斗拆卸

第 6 步:您的偏移量是您跳转到的位置的第一个 QWORD。就我而言,它是0x8003684a,这就是ZONE_MAP. 料斗中的偏移量


推荐阅读