我有一台安装了 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/