gpt4 book ai didi

ios - 检测iOS dylib(越狱)

转载 作者:行者123 更新时间:2023-12-01 19:14:26 26 4
gpt4 key购买 nike

我的应用程序(越狱的 iOS)是否有一种优雅的方式( Objective-C 或 C)来检查特定的动态库在 iOS 中是否可用,而不是使用 NSFileManager 检查实际的 dylib 文件是否存在于特定路径中或调用dlopen ? (例如,一个包含我可以访问的可用动态库信息的对象。)

更新:我知道我也可以在我的项目设置(Xcode)中要求它,但是如果 dylib 不可用,应用程序只会在启动时崩溃,没有任何反馈(如果有办法捕捉到这个并发出警报在崩溃之前,这也是一个可以接受的解决方案)。

最佳答案

如果您对 dylib 使用弱链接,通过检查特定符号应该很容易检测库是否存在。

假设你有一个 void foo( void );该库中的函数。

您可以将该原型(prototype)声明为 extern在您自己的代码中,并使用 weak_import属性:

extern void foo( void ) __attribute__( ( weak_import ) );

这样,如果找不到符号(因为它不再在库中,或者因为整个库不可用),链接器会将符号的地址设置为 NULL .

然后,您可以简单而优雅地检查该符号:
if( foo == NULL )
{
/* Alerts the user */
}
else
{
/* It's safe to use foo() */
}

进一步阅读: Framework Programming Guide

关于ios - 检测iOS dylib(越狱),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236425/

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