在运行时动态下载并执行iOS代码

时间:2014-04-20 21:43:34

标签: ios frameworks dynamic-linking

作为学术和心理练习,如何在iOS设备上下载预编译的二进制文件并在其中执行方法?

我理解这违反了Apple的许可协议第3.2.2节,但我要求提供个人项目并了解有关iOS运行时的更多信息。

目标

我尝试了什么

我没有尝试任何具体的东西,但我想可以按照......的方式做一些事情。

void *myDownloadedLibrary = dlopen("/path/to/newly/downloaded/framework/MyCoolBinary.framework")
dlsym(myDownloadedLibrary)

任何关于这将与哪种图书馆合作的例子或指示都将受到赞赏 感谢。

1 个答案:

答案 0 :(得分:3)

尝试类似

的内容
void *uikit = dlopen("path_to_dylib", RTLD_LAZY);
id (*FunctionName)(id) = dlsym(uikit, "FunctionName");
FunctionName(arg1);
dlclose(uikit);

有关详细信息,请在此处阅读有关动态加载的信息: http://en.wikipedia.org/wiki/Dynamic_loading