ios - 如何在 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
,但它会使内核恐慌,所以它不正确。
解决方案
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
.
推荐阅读
- javascript - 如何使用 Swiper 延迟加载 Gatsby-Plugin-Image?
- c# - 匿名对象上的 Distinct() 在 LINQ 中不起作用
- azure-devops - 任务 AzureStaticWebApp@0 '无法检测到此目录',但已显示
- python - 想通过在模板中打印来测试服务
- python - 有没有更有效的方法来防止根据过去的脚本执行执行一行代码?
- javascript - 将分析跟踪代码添加到我的网站
- c++ - 如何修复错误“C++ 需要所有声明的类型说明符?”
- html - 如何在 CSS GRID 中实际排列图像?
- c++ - 受保护构造函数的 noexcept 上的静态断言
- javascript - Python:wx.html2.WebView - 无法使用 JavaScript 将第一个元素集中在页面加载上