ios - Hook 系统 (libc) 在链接时在 iOS 上运行

标签 ios iphone objective-c

所以我知道在越狱的 iOS 设备上可以将 dylib 注入(inject)正在运行的进程并插入/ Hook 系统函数。我想知道是否有可能在非越狱设备上在链接或运行时插入系统功能,假设我是构建应用程序的人?也许在 Linux 上等同于使用 dlfcn 和 LD_PRELOAD?

举个例子:我想拿一个我构建的应用程序使用各种 Cocoa/Core Foundation 抽象来访问文件系统并包装底层的打开/读取/写入/关闭调用。我知道 Objective-C 中的 swizzling,但我正在寻找 libc 级别的东西,所以我捕获了所有内容。这是用于测试/调试相关的东西,因此它不需要对 App Store 友好。谢谢!

最佳答案

不,(据我所知)在未越狱的 iOS 设备上是不可能的。删除了所有传统形式的动态加载(插入、dlopen/dlsym 等)。

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

关于ios - Hook 系统 (libc) 在链接时在 iOS 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710489/

相关文章:

objective-c - 管理导航 Controller / View Controller

iphone - MailCore SMTP 服务器证书无效

iphone - 使用图层和 Grand Central Dispatch 渲染 UIButtons 的最快方法?

iphone - 在 Iphone +[UIActivityIndi​​catorView _loadResourcesForStyle :]? 中显示泄漏

iphone - 当我尝试切换 View 时需要帮助找出我的应用程序崩溃的原因

ios - 在 iOS 中显示隐藏 View

ios - 如何在 iOS 中正确实现视频库

objective-c - 使错误命名的选择器产生编译时错误

ios - Alamofire 5 调整和重试请求

ios - 获取传递给完成处理程序以进行单元测试的值