2012-02-20 2 views
10

Я хочу использовать этот код для защиты от пиратства для своего приложения.Является ли этот код защиты от пиратства iOS хорошим?

NSString* bundlePath = [[NSBundle mainBundle] bundlePath]; 
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:(@"%@/_CodeSignature", bundlePath)]; 
if (!fileExists) { 
    //Pirated 
    NSLog(@"Pirated"); 
} 
BOOL fileExists2 = [[NSFileManager defaultManager] fileExistsAtPath:(@"%@/CodeResources", bundlePath)]; 
if (!fileExists2) { 
    //Pirated 
    NSLog(@"Pirated2"); 
} 
BOOL fileExists3 = [[NSFileManager defaultManager] fileExistsAtPath:(@"%@/ResourceRules.plist", bundlePath)]; 
if (!fileExists3) { 
    //Pirated 
    NSLog(@"Pirated3"); 
} 

Кто-нибудь использовал его раньше? Может ли он использоваться для некоторой базовой защиты, или это просто дерьмо? Какие у вас есть предложения по этой теме?

+7

Не только это тривиально побеждено (злоумышленник может изменить строки), он опирается на детали реализации, которые Apple может изменить в любое время. Как законный пользователь, я был бы очень раздражен, если бы обновил свою ОС и был обработан как пират в вашем приложении. –

+6

Почему бы не использовать время, затрачиваемое на это, чтобы сделать приложение еще лучше для оплаты клиентов? Вы не собираетесь прекращать пиратство своего приложения, и большинство пиратов людей, вероятно, не будут покупать его в любом случае. – UIAdam

+0

Здесь в Греции Пиратские iphones - это 70% от iphones, так что техника - действительно плохая идея! –

ответ

7

Мои два цента - это то, что я думаю, что вы потратите много времени, пытаясь остановить то, что вы не можете полностью остановить. Из того, что сказано в некоторых комментариях, похоже, что вас беспокоит пиратство, потому что в Греции много джейлбрейковых телефонов. Греция - всего лишь одна часть мира, и я подозреваю, что если вы перестанете думать о себе и начнете думать во всем мире, вы обнаружите, что большинство телефонов не взломанных и запущенных законных приложений.

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

Во-вторых, я бы посоветовал вам искать способы покорить джейлбрейкеров, чтобы они понравились ваше приложение и хотели бы дать вам деньги или купить его. В сети много дискуссий о новых бизнес-моделях и о том, как старые модели ненависти к пиратству просто не работают. Охота вокруг, и я думаю, вы найдете случаи, когда люди приняли тот факт, что их продукт копируется и использует его в своих интересах. Можете ли вы снять тот же трюк? Если вы можете, тогда проблемы с пиратством исчезнут, и заинтересованные люди скорее всего станут активом, а не ответственностью.

Просто мои мысли :-)

+0

интересные мысли, я прочитал много статей перед публикацией здесь, но мне плохо, что я ничего не делал для защиты своего кода. Это может быть просто привычка, и как только я привыкну к этому, все вернется к норме. –

+4

джейлбрейкер ≠ пират – edc1591

+0

Я думаю, что буду следовать предложению @ drekka! –

1

Его можно использовать, если алгоритм взломщика недостаточно умен, чтобы добавить поддельные файлы ResourceRules и т. Д.

+0

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

+1

Ну, я на самом деле не нахожусь в Crackulous, но AFAIK, он их удаляет, поэтому он должен работать. –

+0

Спасибо большое @ H2CO3 –

3

Это лучше, чем ничего. Обратите внимание, что его можно легко обойти, просто создав пустые файлы с соответствующими именами. И выяснить, что имена файлов просты, кто-то может просто использовать strings на вашем двоичном файле.

+0

да, я тоже об этом думал! –

+0

+1, согласился, лучше ничего. – HelmiB

3

Я использовал этот код в приложениях раньше, но я не запрещаю пирату использовать мое приложение. Я просто показываю сообщение, чтобы попытаться обвинить пользователя в покупке приложения.

Если вы действительно хотите, чтобы пираты не использовали ваше приложение, вы должны проверить шифрование двоичного кода вашего приложения. Примерно так: http://landonf.bikemonkey.org/2009/02/index.html

+0

ok Я прочитал это раньше, но где я могу реализовать этот метод? На main.m? –

+0

Да, я думаю, вам нужно добавить его в 'main.m' и сделать свой чек перед' UIApplicationMain' – edc1591

+0

Вы использовали этот код, как есть, и он отлично работал? как вы его протестировали? Я имею в виду приведенный выше код! –

1

Checkout mtiks для мобильных приложений по борьбе с пиратством и в режиме реального времени аналитики. Полностью бесплатный для разработчиков. Для интеграции библиотеки требуется всего 5 минут.

Смежные вопросы