Сокращение пиратства приложений iPhone

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

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

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

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

ОБНОВИТЬ

Пожалуйста, посетите и прочитайте

Благодаря chpwn в комментариях.

Код слишком стар! – 11 мая 2009 г.

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

В настоящее время есть три вещи:

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

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

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

Как правило, у нас нет SignerIdentity в любом из приложений App Store, которые мы создаем, поэтому проверяем на nil, тогда выполнение заданных инструкций должно усложнить работу с крекеры и пираты.

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

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

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

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

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

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

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

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

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

Давайте будем гением компьютера.