gpt4 book ai didi

ios - 在 iOS 中使用共享对象文件(.so 文件)

转载 作者:可可西里 更新时间:2023-11-01 05:06:21 26 4
gpt4 key购买 nike

我得到了一个共享对象文件 (.so) 和其中的函数,但我不知道如何使用它,或者如何修改它以便在 iOS 应用程序中使用。有人能指出我正确的方向吗?

我知道 .so 来自 Android 应用程序,但我被告知我也可以让它在 iOS 应用程序中运行。

最佳答案

实际上和技术上,是的,你可以,但不是你想的那样。

如果它来自 Android,它可能是为 ARM 编译的。所以它应该与 iOS 设备中的 ARM CPU 二进制兼容。然而,iOS 并没有使用通常的共享对象格式(即 ELF 格式),而是使用 iOS 和 OS X 自己的 Mach-O 格式。

这意味着您不能直接链接到这个共享对象文件,也不能将它直接传递给 dlopen()dlsym()。您必须认真地进行黑客攻击(您可能不知道的事情)。这涉及正确加载和重定位文件。

可以在 iOS 越狱开发人员和黑客中找到这方面的示例,Comex's GitHub repository Frash ,用于越狱 iOS 设备的 Flash 播放器。 Comex 基本上为 iOS 编写了一个 ELF 加载器模块(称为“食物”),并使用它使 Android 的 libflashplayer.so 在 iOS 上运行。很整洁,对吧?

另请注意,这对于 AppStore 应用程序来说是不可能的,因为它需要在操作系统中进行动态加载和各种更改。

关于ios - 在 iOS 中使用共享对象文件(.so 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615973/

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