Подтвердить что ты не робот

Какие изменения в jailbroken ядре?

Увидев этот вопрос о защите вашего приложения от взлома, я увидел, что главный ответчик упомянул что-то о возможности увидеть, было ли устройство взломанным каким-то внутренним дисбаланс в ядре. Изучив это немного, я обнаружил "Обзор архитектуры ядра" и узнал о способах взаимодействия с ядром Mach-BSD. Все, что мне нужно знать: что я ищу? Есть ли какое-то ключевое или внутреннее состояние, которое изменяется, когда устройство джейлбрейкнуто в контексте ядра?

Чтобы быть ясным, я не ищу код (я знаю, как это делать самому), я ищу, что искать... Как это ни странно. Я видел ответы в связанных вопросах, я знаю, что они работают, но мне интересно, какой маршрут ядра яв ляется более общим и эффективным способом вместо поиска каталогов, которые могут изменить или использовать клавиши которые могут иметь разные имена.

Я также не собираюсь отключать какие-либо функции со стороны приложения из-за пиратства (просто покажите сообщение или что-то на основе условия).

4b9b3361

Ответ 1

Все "современные" патчи ядра основаны на исправлениях comex.

основные элементы, которые исправляются:

  • security.mac.proc_enforce
  • cs_enforcement_disable (kernel and AMFI)
  • PE_i_can_has_debugger
  • vm_map_enter
  • vm_map_protect
  • ...

О, и есть также песочницы. Если вы хотите узнать больше обо всех этих исправлениях, я предлагаю вам взглянуть на iOS Hacker Handbook.

Изменить: Я просто придумал простую идею проверить, что устройство было взломанным, но я не уверен, что Apple разрешает использовать эти функции:

  • выделить некоторую память, используя mach_vm_allocate()

  • изменить защиту этой страницы с помощью mach_vm_protect() на VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY

  • Так как запас iOS не позволяет VM_PROT_EXECUTE изнутри вашего приложения, это не сработает, проверьте возвращаемое значение mach_vm_protect(), если оно не было взломанным, но успешно, если устройство было взломанным.

Ответ 2

Около года назад saurik написал комментарий к Hacker News со списком исправлений "лучшей практики" , которые по умолчанию устанавливают джейлбрейки". Я бы предложил прочитать этот комментарий для всех деталей, но вот предварительный просмотр того, что он говорит (с большим количеством объяснений, которые я вырвал):

  • AFC2: позволяет вам получить доступ через USB, все/как root, а не просто /var/mobile/Media как мобильные.

  • fstab/rw: делает/монтируется чтение-запись.

  • fstab/var suid dev: позволяет исполняемым файлам setuid и узлам устройства в разделе пользовательских данных.

  • codeign: разрешить код, который не был подписан кем-либо для выполнения.

  • codehash: разрешить процессы с "поврежденными" страницами кода для выполнения.

  • rw- > rx: поддерживает изменение страницы памяти от записи до исполняемого файла.

  • rwx: позволяет отмечать память для записи и выполнения в одно и то же время.

  • песочница: разрешить процессам доступ к файлам, находящимся за пределами их песочницы, на основе разрешений Unix, а не обычной песочнице правила.

  • crazeles: смехотворно сложный взлом на планете, когда Neur FairPlay DRM проверяет, что iBooks отказывается работать правильно на джейлбрейк-устройствах.