Вопрос

Какие общепринятые методы борьбы с пиратством приложений iPhone, которые не нарушают процесс оценки Apple?

Если мое приложение "звонит домой", чтобы предоставить уникальный идентификатор устройства, на котором оно запускается, какую другую информацию мне нужно будет собрать (например, Apple ID, используемый для покупки приложения), чтобы создать действительный регистрационный токен, который разрешает использование приложения?Аналогично, какой код я бы использовал для доступа к этим дополнительным данным?

Каковы, по-видимому, наилучшие доступные технические подходы к этой проблеме в настоящее время?

(Пожалуйста, воздержитесь от ответы, не связанные с программированием о том, что пиратство неизбежно, и т.д.Я знаю, что пиратство неизбежно.Я заинтересован в ответы, основанные на программировании в которых обсуждается, как его уменьшить.Заранее спасибо за ваше понимание.)

Это было полезно?

Решение

Обновить

Пожалуйста заходите и читайте

Спасибо chpwn в комментариях.

Код, который слишком стар!- 11 мая 2009

На данный момент существует более простой способ определить, было ли ваше приложение для iPhone взломано с целью пиратского использования.Это не требует от вас сверки уникальных идентификаторов iPhone со списком принятых идентификаторов.

В настоящее время есть три вещи, которые делают крекеры:

  1. Отредактируйте файл Info.plist
  2. Расшифруйте Info.plist из двоичного файла в UTF-8 или ASCII
  3. Добавьте пару ключей в Info.plist{Идентификатор подписи, Подписание приложения Apple iPhone OS}

Последнее проще всего проверить с помощью этого кода:

NSBundle *bundle = [NSBundle mainBundle]; 
NSDictionary *info = [bundle infoDictionary]; 
if ([info objectForKey: @"SignerIdentity"] != nil) 
{ /* do something */  }

Как правило, у нас нет идентификатора SignerIdentity ни в одном из приложений App Store, которые мы создаем, поэтому проверка на nil с последующим выполнением инструкций set должна усложнить задачу взломщикам и пиратам.

Я не могу приписать это себе, поэтому, пожалуйста, посетите Как помешать взломщикам iPhone IPA. Там много информации о пиратстве на iPhone и о том, как его обуздать.

Другие советы

Как отметил Андрей Таранцов в комментариях, найти строку "SignerIdentity" в двоичном коде (используя приложение, подобное HexEdit) и заменить ее довольно просто.

Вы могли бы закодировать эту строку, но опять же, все, что вам нужно сделать, это изменить один ее символ, и приложение больше не будет искать ключ "SignerIdentity", а какой-то другой ключ, который, вероятно, не существует (следовательно, равен null).Этот ключ равен нулю, приложение думает, что он не взломан (поскольку SignerIdentity должен быть равен нулю, если приложение не взломано).

Вместо этого я бы предпочел проверить размер info.plist и сравнить его с эталонным значением.Я заметил, что сборки симулятора и устройств не имеют одинакового размера файла info.plist.То же самое относится к сборкам Debug, Release и Distribution.Поэтому убедитесь, что вы установили эталонное значение, используя размер файла info.plist для сборки дистрибутива устройства.

Как искать размер файла при запуске:

Похоже, что сохранение контрольной суммы MD5 из Plist и проверка CryptID должны работать нормально до некоторого времени.

Проверить iTunesMetadata.plist что касается даты покупки, то иногда, когда приложение взломано, эта дата меняется на что-то возмутительное.

Также проверьте, существует ли поле имени покупателя.По моему опыту взлома приложений для личного использования, это обычно удаляется.Если кто-нибудь знает, как работает защита от дампа в Temple Run, вы могли бы использовать это в сочетании с какой-либо защитой, которую poedCrackMod не может получить (Google poedCrackMod create hackulo.us учетной записи, перейдите в центр разработки, найдите poedCrackMod, установите его на iDevice).

Clutch, который не взломает ничего с помощью Temple Run, как protection, имеет функцию под названием OverDrive, предназначенную для отключения обнаружения взлома приложения.poedCrackMod имеет LamestPatch, который не так хорош.Также poedCrackMod - это bash-скрипт с открытым исходным кодом, который может быть подвергнут обратному проектированию.Напомним, у вас есть приложение с защитой от копирования, которую нельзя обойти с помощью clutch / overdrive, но можно взломать с помощью poedCrackMod.Однако poedCrackMod не может обойти встроенные в приложение проверки на пиратство.Трудно вручную исправить проверки целостности в исполняемом файле приложения.Таким образом, ваше приложение трудно взломать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top