越狱的内核有什么变化?
看到这个问题 ,保护您的应用程序不被破解,我看到最高回答者提到了能够看到一个设备是否由于内核内部的不平衡而越狱。 仔细研究了一下,我发现了内核体系结构概述指南,并且知道了如何与Mach-BSD内核交互的方法。 我需要知道的是:我在找什么? 当设备在内核环境中越狱时,是否有某种键或内部状态发生变化?
要清楚,我不是在寻找代码(我知道如何自己做这些事情),我正在寻找什么寻找…听起来很奇怪。 我已经看到了链接问题的答案,我知道它们工作,但我想知道所有的内核路由,这似乎更通用和有效的方式来检查,而不是search可能会改变或plist键的目录可能有不同的名字。
我也不打算因盗版而禁用应用程序的任何function(只是根据条件显示消息或其他内容)。
所有的“现代”内核补丁都是基于comex的补丁 。
主要的补丁是:
-
security.mac.proc_enforce
-
cs_enforcement_disable (kernel and AMFI)
-
PE_i_can_has_debugger
-
vm_map_enter
-
vm_map_protect
- …
哦,还有沙盒补丁。 如果你想读更多关于所有这些补丁,我build议你看看iOS黑客手册 。
编辑:我刚想出一个简单的想法来检查设备是否越狱,但我不知道苹果是否允许使用这些function:
-
使用mach_vm_allocate()分配一些内存
-
通过mach_vm_protect()将该页面的保护更改为VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY
-
由于股票iOS不允许在您的应用程序中使用VM_PROT_EXECUTE,因此将会失败,请检查mach_vm_protect()的返回值,而不是越狱,但如果设备越狱,则成功。
大约一年前,saurik 在“黑客新闻”上发表了一篇评论,其中列出了越狱默认安装的“最佳实践”补丁 。 我build议阅读所有的细节评论,但这里是他说的预览(有很多我解释的解释):
AFC2:允许你通过USB访问所有的/,而不是/ var / mobile / Media。
fstab / rw:使读/写可挂载。
fstab / var suid dev:允许用户数据分区上的setuid可执行文件和设备节点。
codesign:允许任何人没有签名的代码执行。
codehash:允许具有“损坏”代码页的进程执行。
rw-> rx:支持将一页内存从可写变为可执行。
rwx:允许内存被标记为写入并同时执行。
沙箱:允许进程根据Unix权限而不是普通的沙箱规则访问沙箱外的文件。
cravelles:一个疯狂的复杂黑客星球的FairPlay DRM检查,导致iBooks拒绝在越狱设备上正确运行。