这是一个老问题,但作为一名越狱开发人员,我认为它可以帮助那些在寻找越狱检测绕过或类似的东西时偶然发现它的人,这些东西现在越来越相关。OP 的问题现在经常出现,比以前更多。
即使在 2020 年的今天,这类应用程序也会检测到各种越狱实用程序。我自己是一名越狱开发人员。当我们为任何 iOS 版本构建越狱时,我们会添加相当多的基础二进制文件以进一步提供帮助。
现在我们将它们放置在各种隐藏文件夹中,例如/jb/bin
or/jailbreak/binbag/
或/jb/jbstuff/
等,而在过去,它们通常被放置在默认的 iOS 目录中,例如 /bin/sbin
等。
具有越狱检测功能的应用程序会[NSFileManager defaultManager] fileExistsAtPath:...
检查Cydia
这些基本二进制文件是否存在(大多数情况下它们会检查/bin/bash
,但现在检查更多),而今天,它们甚至会检查是否ROOT FS
已重新安装为R/W
(通常RO
是只能/var
写)。
下载的调整Cydia
通常不会检查越狱检测(嗯,大多数时候 - 各种越狱开发人员之间存在戏剧性,所以即使在今天也存在人为限制),但他们会检查您下载的存储库。
AppSync Unified
大多数时候,它就像调整最终所做的一样简单。
调整的代码中有一个变量或#define
某处具有正确的Cydia
回购 URL 或标识符,调整检查Cydia
列表以查看调整是否已从那里下载。如果没有,它将显示警报。
一些调整实现了奇怪的 DRM,每次重新启动手机时都会从服务器端下载许可证(这很奇怪,在越狱社区中很少使用)。
以下是 AppSync 统一调整功能的示例:
#define DPKG_PATH "/var/lib/dpkg/info/net.angelxwind.appsyncunified.list"
....
if (access(DPKG_PATH, F_OK) == -1) {
NSLog(@"You seem to have installed AppSync Unified from a Cydia/APT repository that is not cydia.akemi.ai (package ID net.angelxwind.appsyncunified).");
NSLog(@"If someone other than Linus Yang (laokongzi) or Karen/あけみ is taking credit for the development of this tweak, they are likely lying.");
NSLog(@"Please only download AppSync Unified from the official repository to ensure file integrity and reliability.");
}
....
所以在这个越狱调整的情况下,它只是检查它被下载的 repo。这里的一个简单补丁就是将其加载AppSyncUnified.dylib
到诸如 Hopper 或 IDA 甚至 Radare2 之类的 arm64/arm 反汇编程序中并修补分支。将其设为 aB
而不是条件分支,以便永远不会考虑比较的结果。就如此容易。如果您想分析 AppSync Unified 的完整源代码,请访问GitHub 存储库。
当然,正如我所说,许多调整使用更复杂的方案,如服务器端 DRM,但它们都不是防故障的。
*请理解我不容忍tweak 盗版。此回复旨在帮助新用户访问此页面,旨在提供有关越狱检测和越狱调整 DRM 的当前状态的一些见解。请从适当的回购购买付费调整,它们只需一美元左右。