挂钩系统(libc)在链接时在iOS上运行

时间:2014-02-11 18:48:01

标签: ios iphone objective-c

所以我知道在越狱的iOS设备上可以将dylib注入正在运行的进程并插入/挂钩系统功能。我想知道是否可以在非越狱设备上在任何链接或运行时插入系统功能,假设我是构建应用程序的人?也许在linux上使用dlfcn和LD_PRELOAD相当于?

一个例子:我想要一个我已经构建的应用程序,它使用各种Cocoa / Core Foundation抽象来进行文件系统访问并包装底层的open / read / write / close调用。我知道在Objective-C中调配,但我在libc级别寻找一些东西,所以我捕获了一切。这是针对某些测试/调试相关的,因此它不需要对App Store友好。谢谢!

1 个答案:

答案 0 :(得分:0)

不,我不知道(据我所知)非越狱的iOS设备。所有传统形式的动态加载(插入,dlopen / dlsym等)都已被删除。

由于您提到您的需求与测试/调试有关,因此如果模拟器上存在问题,您可能希望尝试使用DTrace。您可以在模拟器上使用DTrace,但不能在真正的iOS设备上使用。