Чтобы расширить комментарии Йонеля и Бенджи выше:
1) метод Лэндона Фуллера, основанный на проверке шифрования, ссылка на которую дана yonel выше, кажется, единственный, кто еще не побежден автоматизированными инструментами взлома. Я бы не стал особо беспокоиться о том, что Apple изменит состояние заголовка LC_ENCRYPTION_INFO в ближайшее время. Похоже, что это имеет некоторые непредсказуемые эффекты на взломанных iPhone (даже когда пользователь купил копию ...)
В любом случае, я бы не стал предпринимать никаких опрометчивых действий против пользователя на основе этого кода ...
2) В дополнение к комментарию Бенджи re. обфускация (абсолютная необходимость при работе с любыми строковыми значениями в вашем антипиратском коде): аналогичный, но, возможно, даже более простой способ - всегда проверять солёную хешированную версию ценность, которую вы ищете. Например (даже если эта проверка больше не эффективна), вы должны проверять имя каждого ключа MainBundle как md5 (keyName + "некоторая секретная соль") с соответствующей константой ... Скорее простой, но обязательно отразите любую попытку найти нить.
Конечно, это требует, чтобы вы могли косвенно запрашивать значение, которое вы хотите сравнить (например, просматривая массив, содержащий его). Но так бывает чаще всего.
person
Community
schedule
18.03.2010