gpt4 book ai didi

ios - 您可以使用私有(private) API Hook iOS 中的系统函数调用吗?

转载 作者:可可西里 更新时间:2023-11-01 04:38:31 28 4
gpt4 key购买 nike

是否可以在未越狱设备上使用私有(private) API Hook iOS 中的系统函数调用?据我所知,使用 MobileSubstrate 的 MSHook 在越狱设备上是可行的。

我想要完成的是拥有一个应用程序,它可以在控制中心 (/image/NfbGw.png) 中切换设备方向锁时拦截系统调用,并调用 CTRegistrationSetCellularDataIsEnabled 以切换蜂窝数据的使用。

到目前为止,我已经设法创建了一个 iOS 8 通知中心小部件来执行此操作,但是如果有一种从控制中心切换 3G 的方法不是很好吗?

显然,该应用仅供我个人使用。

最佳答案

就以您描述的方式完成此任务而言...,我认为不越狱就没有办法做到这一点。

您可以免费使用method swizzling在个人使用的非越狱应用程序中 Hook iOS 方法。但是,这会限制您 Hook 从您的应用调用的代码。换句话说,如果您的应用向下调用 iOS 框架,您可以通过这种方式调配方法。

但是,控制中心和 SpringBoard 不是您应用程序的一部分。 Mobile Substrate (Cydia Substrate) 的美妙之处在于它确实允许您将 Hook 注入(inject)到未在您的应用程序进程中运行的代码中。但是,如果不越狱则无法使用。

Interposition也是一种用于挂接 C API 的类似技术,但同样需要越狱。

就您是否可以成功调用 CTRegistrationSetCellularDataIsEnabled 而言,这可能是值得自己思考的问题。我猜你可以通过动态打开 CoreTelephony.framework 来调用它,就像许多私有(private) API 一样。 ( See here for what looks to be a sample )

但是,即使您可以调用它,如果它受到 entitlement 的保护,调用也可能不会成功 ,这是不越狱就无法获得的另一件事。

注意:我还尝试调查了 iOS 是否会生成任何您可以在方向锁定切换时截获的 Darwin 通知,以及是否有任何您可以键值观察的属性锁定状态...但是,没有找到任何可以替代解决您的问题的方法。

关于ios - 您可以使用私有(private) API Hook iOS 中的系统函数调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27161171/

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