Um die obigen Kommentare von Yonel und Benjie zu erweitern:
1) Die Methode von Landon Fuller, die sich auf die oben von yonel verknüpfte Verschlüsselungsprüfung stützt, scheint die einzige zu sein, die noch nicht von automatisierten Cracking-Tools besiegt wurde. Ich würde mir keine allzu großen Sorgen machen, dass Apple den Status des LC_ENCRYPTION_INFO-Headers bald ändern könnte. Es scheint einige unvorhersehbare Auswirkungen auf iphone mit Jailbreak zu haben (selbst wenn der Benutzer eine Kopie gekauft hat ...)
Auf jeden Fall würde ich keine vorschnellen Maßnahmen gegen einen Benutzer ergreifen, der auf diesem Code basiert ...
2) Zur Ergänzung von Benjies Kommentar zu. Verschleierung (eine absolute Notwendigkeit, wenn Sie mit Zeichenfolgenwerten in Ihrem Anti-Piraterie-Code arbeiten): Eine ähnliche, aber vielleicht noch einfachere Möglichkeit besteht darin, immer eine gesalzene Hash- Version des gesuchten Werts zu überprüfen . Zum Beispiel (obwohl diese Prüfung nicht mehr effizient ist) würden Sie den Schlüsselnamen jedes MainBundle als md5 (Schlüsselname + "etwas geheimes Salz") gegen die entsprechende Konstante prüfen ... Ziemlich einfach, aber sicher jeden Versuch, die zu finden, zu vereiteln Zeichenfolge.
Dies setzt natürlich voraus, dass Sie den zu vergleichenden Wert indirekt abfragen können (z. B. indem Sie ein Array durchlaufen, das ihn enthält). Dies ist jedoch meistens der Fall.