iOS - 如何避免列出已安装的应用程序?

标签 ios objective-c swift jailbreak

我有一台安装了 Undecimus 的 iOS 设备。当我尝试启动非越狱专用游戏 Tapsonic TOP 时,它以某种方式读取我的应用程序列表并显示“检测到非法程序”并自行退出。我在越狱和不越狱的情况下都尝试过这个,并且我确实进行了一些调整来隐藏越狱检测,因此这不太可能是越狱问题。

我在 StackOverflow 上进行了搜索,看看这是如何实现的。其中一种方法是读取应用程序文件夹以检索文件列表,另一种方法是保留应用程序白名单并使用 canOpenUrl 检查每个应用程序是否存在。

Is it possible to get installed apps in ios

是否可以修改系统,使其在没有 SU 权限的情况下读取应用程序文件夹时仅返回系统应用程序目录的列表,并在检查 canOpenUrl 时始终返回 false?

最佳答案

经过一段时间的研究,我已经弄清楚了幕后发生的事情。

真相:

游戏通过越狱检测来检测“非法”用户,而不是通过检索已安装的应用程序列表。

详细信息:

我将iPhone上的游戏可执行文件拉到IDA中,并在功能窗口中使用关键字“jail”进行搜索。结果显示有一个名为+[PmangPlus deviceJailbroken]的方法。基本上该方法检查了几个文件(包括/Applications/Cydia.app,/Applications/RockApp.app,/Applications/Icy.app等),如果这些文件中的任何一个存在,该方法将返回@“Y”,否则@“N”。

然后我编写了一个基板调整来绕过此检测,并且它起作用了。这通过 Hook 该方法并返回@“N”来起作用。

希望这有帮助。

关于iOS - 如何避免列出已安装的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208408/

相关文章:

ios - 添加标题单元格后不出现

iphone - 为iPhone 3.x使用高清图像

ios - 检测点击 UITableView 的空白区域

objective-c - 您可以为plist文件定义自定义枚举类型吗?

objective-c - 如何构建单个 .a(Cocoa Touch 静态库)

iphone - 使用 observeValueForKeyPath 观察 NSMutableSet 的插入和删除

swift - 向 map View 添加注释时出错

ios - 将 Django-oscar 链接到 native IOS 应用程序以进行购物

ios - 检查创建的指针对象是否小于今天 Parse.com

ios - XCode 6.3.1 在更新配置文件时崩溃