这是一个老问题,但作为一名越狱开发者,我认为它可以帮助那些在搜索越狱检测绕过等相关内容时偶然遇到它的人,这些问题现在比以前更加相关。 OP所面临的问题现在非常普遍,比以前更多。
即使在2020年,这些应用程序仍会检测各种越狱工具。我自己也是一名越狱开发者。当我们为任何iOS版本构建越狱时,我们会添加相当多的基础二进制文件以进行进一步的辅助。
现在,我们将它们放置在各种隐藏文件夹中,如
/jb/bin
或
/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
列表以查看是否已从那里下载了该调整。如果没有,则会显示警报。
一些调整实现了奇怪的数字版权管理技术,每次重新启动手机时都需要从服务器下载许可证(这很奇怪,在越狱社区中使用非常少)。
以下是AppSync Unified Tweak的示例:
#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.");
}
....
在这个越狱程序中,它只是检查已下载的存储库。简单的修补方法是将
AppSyncUnified.dylib
加载到像Hopper或IDA甚至Radare2这样的arm64/arm反汇编器中并修补分支。将其变为
B
而不是条件分支,以便比较结果不被计算。就这么简单。如果您想分析AppSync Unified的完整源代码,可以访问
GitHub存储库。
当然,正如我所说,许多调整使用更复杂的方案,如服务器端DRM,但它们都不是万无一失的。
*请理解我不赞成调整盗版。此回复旨在帮助新手,并旨在提供有关越狱检测和越狱调整DRM的当前状态的一些见解。请从适当的存储库购买付费调整,它们只需花费一美元左右。