Comment les fichiers .IPA des applications iOS sont-ils  » craqués  » ?


Basiquement, chaque app que vous téléchargez a sa partie binaire (mach-o) chiffrée (ou codée, ce que vous préférez) "à la volée" par les serveurs d'Apple avec une cryptographie à clé publique, et elle'est liée à un seul identifiant apple.
Lorsque vous essayez d'exécuter ce .IPA sur un autre appareil (non connecté avec l'identifiant de l'acheteur), cet appareil n'aura't la clé pour décrypter le binaire mach-o.

Ils le "craquent" en créant un binaire non crypté qui peut être lu par n'importe quel appareil. Maintenant, avant d'expliquer comment ils font cela, je voudrais dire que l'iPhone (et l'iPad/iPod touch bla bla, je ferai référence à l'iPhone pour des raisons de simplicité's) noyau a une protection qui empêche le code non signé (ou non crypté) d'être exécuté. Ainsi, seul le code signé peut être exécuté sur un iPhone standard. Pour éviter ce problème, lorsque vous jailbreaker un iPhone, le noyau sera patché pour que le code non signé puisse être exécuté.


Dernière étape : comment créent-ils un binaire non signé ? Il existe plusieurs méthodes pour le faire, la plus simple que je connaisse est :
1. Obtenir le décalage de début de cryptage dans le binaire avec otool
2. Attacher gdb à l'app à craquer
3. Avec gdb, dump la mémoire de l'app
4. Remplacer le binaire d'origine par le dump dans le fichier IPA (IPA est un simple fichier zip renommé)

Evidemment, pour craquer une app vous devez être l'acheteur, si vous avez un IPA légitime qui appartient à un identifiant apple auquel vous n'avez pas'accès, vous ne pouvez'rien faire.