【问题标题】:How can I find the Kernel Map offset on iOS 9.3.5 iPod Touch 5?如何在 iOS 9.3.5 iPod Touch 5 上找到内核映射偏移量?
【发布时间】:2021-12-04 11:18:27
【问题描述】:

我正在尝试围绕不久前在 GitHub 上发布的 v0rtex 漏洞构建一个工具,我需要找到 Kernel Map 和 Realhost 的偏移量。

我已从 ipsw 解密内核文件并将其加载到 IDA 中,但我获得的偏移量似乎永远不正确。电话出错了。

我设法找到的偏移量:0x2b2b

【问题讨论】:

  • 我认为“越狱”标签在这里更合适。此外,您可能想查看如何在 Stack Overflow 上提出一个好问题。您的问题并未显示您的尝试和努力。 stackoverflow.com/help/how-to-ask

标签: ios jailbreak


【解决方案1】:

这不是一个有效的偏移量。

我假设您的意思是 KERNEL_MAPREALHOST 偏移量。

如果您的桌面上已经有解密的kernelcache 文件,并且您正在 macOS 上执行此操作(我假设您这样做,因为您正在构建 iOS 应用程序,这里是查找偏移量的方法之一:

  1. 将您的kernelcache 文件放在桌面上,并确保它名为“kernelcache”。
  2. 打开终端并粘贴以下命令:

对于KERNEL_MAP

nm kernelcache | grep ' _kernel_map$' | awk '{ print "0x" $1 }'

对于REALHOST

这有点棘手。 REALHOST实际上是host_priv_self_addr 您需要确保已安装 Radare2。

如果你没有radare2,安装它

brew install radare2

之后,运行:

host_priv_self_addr=$(nm kernelcache | grep host_priv_self | awk '{ print "0x" $1 }')
    r2 -q -e scr.color=false -c "pd 2 @ $host_priv_self_addr" kernelcache 2> /dev/null | sed -n 's/0x//gp' | awk '{ print $NF }' | tr '[a-f]\n' '[A-F] ' | awk '{ print "obase=16;ibase=16;" $1 "+" $2 }' | bc | tr '[A-F]' '[a-f]' | awk '{ print "0x" $1 }'

把它放在一个 .sh 文件中,用chmod +x给它适当的权限。

重要提示:内核文件必须使用来自https://www.theiphonewiki.com/wiki/Genoa_13G36_(iPod5,1) 的正确 KEY + IV 解密

花了一些时间,针对我身边的 iPod Touch 第 5 代 9.3.5 的 IPSW 运行这些。 KERNEL_MAP 偏移量是0x80412010

你必须自己找到另一个。

【讨论】:

  • 这适用于 33 位内核吗?
  • 我假设您的意思是 32 位?是的。只要内核文件被解密。在默认情况下对 iOS 10 进行加密之前,请牢记一切。如果您的内核已加密,您可能需要来自 TheiPHoneWiki 的密钥 + iv,否则我给您的任何命令都不起作用。
  • 我用 lzssdec 解密。我不记得使用过任何键。
  • 没有。 lzssdec 用于解压内核。那是一种完全不同的动物。你需要一个不同的工具,比如 Decrypt0r (github.com/matteyeux/Decrypt0r) 来使用 KEY + IV 从这里解密文件:theiphonewiki.com/wiki/Genoa_13G36_(iPod5,1)
猜你喜欢
  • 2021-12-04
  • 2012-03-17
  • 2013-05-03
  • 2020-03-16
  • 1970-01-01
  • 2013-07-09
  • 2013-04-05
  • 1970-01-01
  • 2011-06-09
相关资源
最近更新 更多