35 votes

Quels changements dans un noyau jailbreaké?

Ayant vu cette question sur la protection de votre application d'être fissuré, j'ai vu que le haut du répondeur mentionné quelque chose à propos d'être en mesure de voir si un périphérique a été jailbreaké par certains de déséquilibre interne dans le noyau. Après avoir regardé dans un peu plus, j'ai découvert le Noyau Présentation de l'Architecture d'un guide, et ont des connaissances sur les façons d'interagir avec le Mach-noyau BSD. Tout ce que je besoin de savoir, c'est: Ce que je cherche? Est-il une sorte de clé ou de l'état interne qui change lorsque l'appareil est jailbreaké, dans le contexte du noyau?

Pour être clair, je ne suis pas à la recherche pour le code (je ne sais comment faire ces choses moi-même), je suis à la recherche de ce qu'il faut chercher... Aussi bizarre que cela puisse paraître. J'ai vu les réponses liées à des questions, je sais qu'ils travaillent, mais je m'interroge sur un ensemble de noyau de route, ce qui semble plus générique et efficace pour vérifier qu'au lieu de rechercher les répertoires qui pourrait changer ou plist clés qui peuvent avoir des noms différents.

Je n'ai pas l'intention de désactiver toute fonctionnalité sur la partie de l'application à cause de la piraterie (juste afficher un message ou quelque chose en fonction d'une condition).

24voto

YllierDev Points 456

Tous les "modernes" noyau patchs sont basés sur le comex de patchs.

les principales choses qui sont en train d'être patché sont:

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

Oh, et il y a sandbox patchs trop. Si vous voulez lire plus à propos de tous ces patchs, je vous suggère de prendre un regard sur iOS Hacker Manuel.

Edit: Je suis juste venu avec une idée simple pour vérifier si l'appareil est jailbreaké, mais je ne sais pas si Apple permet l'utilisation de ces fonctions:

  1. allouer de la mémoire à l'aide de mach_vm_allocate()

  2. modifier la protection de cette page grâce à mach_vm_protect() pour VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY

  3. Depuis le stock iOS ne permet pas VM_PROT_EXECUTE de l'intérieur de votre application, ce sera un échec, vérifier la valeur de retour de mach_vm_protect(), lorsqu'il n'est pas jailbreaké, mais réussir que si l'appareil est jailbreaké.

2voto

britta Points 137

Il ya environ un an, saurik a écrit un commentaire sur Hacker News avec une liste de "de" meilleures pratiques "des patchs qui jailbreaks installer par défaut". Je vous suggère la lecture de ce commentaire pour tous les détails, mais voici un aperçu de ce qu'il dit (avec beaucoup d'explication que je ciselée out):

  1. AFC2: vous permet d'accéder, via le port USB, tous / en tant que root au lieu de simplement /var/mobile/Media mobile.

  2. fstab / rw: fait / est monté en lecture-écriture.

  3. fstab /var suid, dev: permet exécutables setuid et les nœuds de périphérique de l'utilisateur des données de la partition.

  4. codesign: permettre à un code qui n'a pas été signé par une personne à exécuter.

  5. codehash: permettre à des processus avec les "corrompus", les pages de code à exécuter.

  6. rw->rx: prend en charge la modification d'une page de mémoire inscriptible à l'exécutable.

  7. rwx: permet de mémoire pour être marqués pour écrire et exécuter en même temps.

  8. sandbox: permettre aux processus d'accéder à des fichiers qui sont à l'extérieur de leur sandbox basé sur les permissions Unix plutôt que la normale sandbox des règles.

  9. crazeles: un ridiculement compliqué hack par planetbeing que les neutres les DRM FairPlay vérifie que la cause iBooks de refuser de fonctionner correctement sur les appareils jailbreaké.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X