Comment les programmeurs et les hackers parviennent-ils à créer un jailbreak et à craquer des applications pour IOS ?


C'est de l'ingénierie inverse à la base. Ils recherchent des exploits, des crashs suspects, puis ils cherchent la cause. Parfois, la cause peut être vraiment exploitable (comme une sorte de débordement quelque part).

Vous expliquer les détails est au-delà de la portée de cette réponse, mais les gens qui font cela savent vraiment ce qu'ils font. Ils ont le débogage comme meilleurs amis, et ils passent beaucoup de temps à le faire


Voici, pour vous donner une idée de la complexité de tout cela, lisez ceci :

Inside Evasi0n, The Most Elaborate Jailbreak To Ever Hack Your iPhone - Forbes

Un des gars derrière Evasi0n explique certains de leurs exploits, notamment :

Evasi0n commence par exécuter libimobiledevice, un programme qui se substitue à iTunes pour communiquer avec les appareils iOS via le même protocole que celui d'Apple. Grâce à cet outil, Evasi0n exploite un bogue dans le système de sauvegarde mobile d'iOS pour accéder à certains paramètres auxquels il ne devrait normalement pas pouvoir accéder, à savoir un fichier qui indique le fuseau horaire de l'appareil.

Le programme de jailbreak insère un "lien symbolique" dans ce fichier de fuseau horaire, un raccourci d'un endroit à un autre dans un système d'exploitation. Dans ce cas, le lien mène à un certain "socket", un canal de communication restreint entre différents programmes que Wang décrit comme une sorte de "téléphone rouge vers Moscou." Evasi0n modifie le socket qui permet aux programmes de communiquer avec un programme appelé Launch Daemon, abrégé launchd, un processus maître qui se charge en premier à chaque fois qu'un appareil iOS démarre et qui peut lancer des applications nécessitant des privilèges "root", une étape au-delà du contrôle du système d'exploitation que les utilisateurs se voient accorder par défaut. Cela signifie que chaque fois que la sauvegarde mobile d'un iPhone ou d'un iPad s'exécute, elle accorde automatiquement à tous les programmes l'accès au fichier de fuseau horaire et, grâce à l'astuce du lien symbolique, l'accès à launchd.

Ayez aussi ceci, des détails sur la façon dont le désormais défunt JailbreakMe fonctionnait en exploitant une vulnérabilité PDF :

JailbreakMe 3.0 : Comment cela fonctionne-t-il ? | TechHive

JailbreakMe a été introduit pour la première fois en 2007 pour iOS 1.1.1. Il exploitait initialement une vulnérabilité de rendu TIFF dans Safari, qui a été rapidement corrigée par Apple dans iOS 1.1.2. La version 2.0 utilisait une faille similaire dans le rendu des fichiers Adobe PDF dans iOS 3 (et était même présente dans iOS 4 lors de sa sortie initiale) mais a été à nouveau corrigée par Apple dans iOS 4.0.2. La version 3.0 exploite une vulnérabilité différente dans le système de rendu PDF de Safari. Une fois de plus, Safari charge un fichier PDF piraté contenant un code de jailbreak caché qui est ensuite injecté dans le système de fichiers racine de votre iDevice - tout cela à partir d'un ol'ordinaire, un site HTTP non sécurisé.

Pour votre deuxième question, le craquage de la plupart des applications n'est'pas vraiment trop difficile. En fin de compte, cela dépend du nombre de contrôles de sécurité que les développeurs ajouteront et de quelques autres facteurs. Pour faire simple, le binaire (officiellement connu sous le nom de mach-o dans le monde OS X) est toujours crypté, mais il doit être décrypté avant de pouvoir être exécuté sur un appareil. En général, l'appareil "vérifie" si l'utilisateur est autorisé à exécuter une application donnée avant de la charger en mémoire. Elle est ensuite décryptée au moment de l'exécution et est prête à fonctionner. Les pirates profitent du fait que le binaire est décrypté au moment de l'exécution car cela leur permet de le vider et de l'analyser à leur guise. Le mach-o est composé d'un en-tête et de ses données, et l'en-tête contient des informations sur le binaire, y compris des choses comme l'endroit où le programme "commence", etc. Donc tout ce que les crackers font est d'analyser le dump (fait avec la ligne de commande otool) et de changer quelques choses sur l'en-tête afin de pouvoir exécuter l'app sans permissions.

Je'manque de temps, donc je ne peux'pas vous donner de liens sur des sources informatives sur le cracking d'app, mais ce sont les bases.