gpt4 book ai didi

ios - 从另一个应用程序调用方法(越狱 iOS)

转载 作者:可可西里 更新时间:2023-11-01 03:33:48 26 4
gpt4 key购买 nike

在越狱的 iOS 设备上,一个应用程序是否可以调用另一个应用程序的方法(实例方法,而不是静态方法)?另一种表达方式:如何获取应用程序的实例(假设应用程序正在运行)以便我可以调用它的方法之一?

背景:我正在尝试从 iPodUI 私有(private)框架中的 Hook 方法调用音乐播放器应用程序中的函数(有关详细信息,请参阅 this post)。

此问题已被问到 Android ,但我没有找到越狱 iOS 的任何内容。如果那是因为我问错了问题并且可以采取不同的方法,我对此持开放态度。

最佳答案

实现此目的的一种简单且替代的方法是使用 cycript 和 system() 调用,但是在使用它之前请注意使用 system() 的危险,因为它可能不安全(在我看来,这不是那么安全在越狱的 iOS 上很重要,那里的一切都非常不安全)

假设你有一个像 [[SomeClass sharedInstance] methodToBeCalledExternally] 这样的方法,你想从其他进程调用它

您可以将该调用保存到 /tmp/something.cy 中的文本文件中

然后您通过运行从外部注入(inject)该代码:

cycript -p Music /tmp/something.cy

但是如果您需要以编程方式执行此操作,当然如果环境不是沙盒(我假设不是),那么您可以这样做:

system("cycript -p Music /tmp/something.cy")

通过这种方式,您可以从您的代码在任何进程(在本例中为音乐应用程序)中执行任意 ObjC 代码。

最后,不要忘记删除文件 /tmp/something.cy,因为您将不再需要它

关于ios - 从另一个应用程序调用方法(越狱 iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213774/

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