Pour compléter les commentaires de Yonel et Benjie ci-dessus :
1) La méthode de Landon Fuller s'appuyant sur la vérification du cryptage, dont le lien est donné ci-dessus par Yonel, semble être le seul à ne pas avoir été vaincu par les outils de piratage automatisés. Je ne m'inquiéterais pas outre mesure de voir Apple modifier l'état de l'en-tête LC_ENCRYPTION_INFO dans un avenir proche. Cela semble avoir des effets imprévisibles sur les iPhone jailbreakés (même lorsque l'utilisateur a acheté une copie...).
En tout état de cause, je ne prendrais pas de mesures irréfléchies à l'encontre d'un utilisateur sur la base de ce code...
2) Pour compléter le commentaire de Benjie concernant l'obscurcissement (une nécessité absolue lorsque vous traitez des valeurs de chaîne dans votre code anti-piratage) : une méthode similaire, mais peut-être encore plus facile, consiste à toujours vérifier une valeur de salé haché de la valeur recherchée. Par exemple (même si cette vérification n'est plus efficace), vous pourriez vérifier le nom de la clé de chaque MainBundle comme md5(keyName + "some secret salt") par rapport à la constante appropriée... C'est assez basique, mais cela permet d'éviter toute tentative de localisation de la chaîne de caractères.
Bien entendu, cela suppose que vous puissiez interroger indirectement la valeur que vous souhaitez comparer (par exemple en passant par un tableau qui la contient). Mais c'est le plus souvent le cas.
1 votes
Apple sait comment le déterminer :p
2 votes
Voir aussi stackoverflow.com/questions/413242/
2 votes
Si vous vous intéressez à cette question, pourquoi ne pas soutenir la proposition de l'Aire 51 pour un jail-breaking site Stack Exchange
0 votes
Duplicata possible de Comment détecter qu'une application iOS fonctionne sur un téléphone jailbreaké ?