To expand the words yonel and Benjie above:
1) The Landon Fuller method , based on the encryption check associated with yonel above, is apparently the only one that has not yet been defeated by automatic cracking tools.I would not worry too much about Apple changing the LC_ENCRYPTION_INFO header status in the near future. This seems to have some unpredictable consequences for jailbroken iphones (even when the user bought a copy ...)
In any case, I would not have taken any rash actions against the user based on this code ...
2) In addition to the comment by Benjie re. obfuscation (an absolute must to deal with any string values ββin your anti-piracy code): a similar, but perhaps even simpler way is to always check the salt hashed version of the value you are looking for. For example (although this check is no longer effective), you should check each MainBundle key name as md5 (keyName + "some secret salt") against the corresponding constant ... Most likely, but be sure to defeat any attempt to find the string.
Of course, this requires you to indirectly request the value that you want to compare (for example, by going through an array containing it). But this happens most often.
user296305 Mar 18 2018-10-18T00: 00Z
source share