36

看到这个关于保护你的应用程序不被破解的问题后,我看到最重要的回答者提到了能够查看设备是否因内核中的某些内部不平衡而越狱。在深入研究之后,我发现了内核架构概述指南,并且了解了与 Mach-BSD 内核交互的方法。我只需要知道:我在寻找什么?当设备在内核上下文中越狱时,是否有某种密钥或内部状态会发生变化?

需要明确的是,我不是在寻找代码(我自己知道如何做这些事情),我在寻找要寻找的东西......听起来很奇怪。我已经在链接的问题中看到了答案,我知道它们有效,但我想知道一个全内核路由,这似乎更像是一种通用且有效的检查方式,而不是搜索可能更改的目录或 plist 键可能有不同的名称。

我也不打算因为盗版而禁用应用程序的任何功能(只是根据条件显示消息或其他内容)。

4

2 回答 2

24

所有“现代”内核补丁都基于comex 的补丁

正在修补的主要内容是:

  • security.mac.proc_enforce
  • cs_enforcement_disable (kernel and AMFI)
  • PE_i_can_has_debugger
  • vm_map_enter
  • vm_map_protect
  • …</li>

哦,还有沙盒补丁。如果您想了解有关所有这些补丁的更多信息,我建议您查看iOS Hacker's Handbook

编辑:我只是想出了一个简单的想法来检查设备是否越狱,但我不确定Apple是否允许使用这些功能:

  1. 使用 mach_vm_allocate() 分配一些内存

  2. 通过 mach_vm_protect() 将该页面的保护更改为 VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY

  3. 由于现有的 iOS 不允许从您的应用程序内部进行 VM_PROT_EXECUTE,因此这将失败,请检查 mach_vm_protect() 的返回值,当未越狱时,但如果设备已越狱则成功。

于 2012-05-05T22:16:45.907 回答
2

大约一年前,saurik在 Hacker News 上发表了一篇评论,其中列出了“越狱默认安装的‘最佳实践’补丁”。我建议阅读该评论以了解所有细节,但这里是他所说的预览(有很多我删掉的解释):

  1. AFC2:允许您通过 USB 以 root 身份访问所有 / 而不仅仅是 /var/mobile/Media 作为移动设备。

  2. fstab / rw:使/被安装为读写。

  3. fstab /var suid dev:允许用户数据分区上的 setuid 可执行文件和设备节点。

  4. codesign:允许未经任何人签名的代码执行。

  5. codehash:允许执行带有“损坏”代码页的进程。

  6. rw->rx:支持将内存页从可写变为可执行。

  7. rwx:允许将内存标记为同时写入和执行。

  8. 沙箱:允许进程根据 Unix 权限而不是正常的沙箱规则访问其沙箱之外的文件。

  9. crazeles:planetbeing 的一项极其复杂的黑客攻击,它消除了导致 iBooks 拒绝在越狱设备上正确运行的 FairPlay DRM 检查。

于 2013-08-30T05:01:51.803 回答