gpt4 book ai didi

ios - 什么库包含通过 IOConnectCallMethod 调用的内核代码

转载 作者:行者123 更新时间:2023-11-28 21:18:34 31 4
gpt4 key购买 nike

我正在逆向 iOS 固件。有什么方法可以找到通过 IOConnectCallMethod 调用的内核二进制代码?

最佳答案

如果我们谈论 iOS 内核,首先您可能应该知道它是加密的。 @xerub 在 theiphonewiki 上上传了 64 位版本的 key 。也可以使用他的神器img4来解密。

所以,假设我们已经解密了kernelcache.release.n51 适用于 iPhone 5s,需要定位 GasGauge 服务方法 2。

  1. 查看 xnu 内核的 iokit/IOKit/IOUserClient.h 源代码:

enter image description here

据此我们知道 externalMethod 是虚方法,后面还有更多 registerNotificationPort(读取 - vtable 的下一个条目)。

  1. 在 GasGauge 驱动程序中找到一个最大的 vtable,并在其中找到 registerNotificationPort 方法,您需要之前的条目:

enter image description here

  1. 下一步是在 externalMethod 方法中定位表地址:

enter image description here

正如我们在这里看到的,原始父级的 IOUserClient::externalMethod 将在任何情况下执行。因此,这是找到此方法的另一种方法。

  1. 在表中的 24 个 QWORD 之后,您将看到第一条记录:

enter image description here

但是您应该知道,externalMethod 方法的实现在其他驱动程序中可能与此不同。你应该知道的主要事情 - 你需要找到这个方法,第二个参数(W1 寄存器)是方法的索引。另一件事 - 有像 IOHID 这样的内核扩展,带有多个 IOService 对象。您应该确定哪个是您的目标。

关于ios - 什么库包含通过 IOConnectCallMethod 调用的内核代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706820/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com