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

Измените эту строку, которая использует “ ”:

console.log(“I have counted” + sheepCounted + “sheep!”);

Для этого с " ":

console.log("I have counted" + sheepCounted + "sheep!");
62
задан Alex Reynolds 6 January 2014 в 07:33
поделиться

2 ответа

ОБНОВЛЕНИЕ

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

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

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

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

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

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

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

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

Обычно у нас нет SignerIdentity ни в одном из приложений App Store, которые мы создаем, поэтому проверка на ноль и выполнение инструкций по установке должны сделать это труднее для взломщиков и пиратов.

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

48
ответ дан 24 November 2019 в 16:54
поделиться

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

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

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

5
ответ дан 24 November 2019 в 16:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: