Защитите приложение для iPhone от хакеров

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

Таким образом, мой вопрос: Как защитить приложение от дампа в память, выполнение в режиме отладки и создание взломали пакет ipsw? Есть ли исходные примеры для этого?

6
задан Evgen Bodunov 27 December 2010 в 20:54
поделиться

5 ответов

я нашел этот исходный фрагмент как пример функции isCracked

#if HEARTBEAT_CHECK_PIRACY
+ (BOOL)isCracked {
#if TARGET_IPHONE_SIMULATOR
    return NO;
#else
    static BOOL isCracked = NO;
    static BOOL didCheck = NO;
    if(didCheck) return isCracked;

#if HEARTBEAT_PIRACY_THRESHOLD >= 1
    if([[[NSBundle mainBundle] infoDictionary] objectForKey:@"SignerIdentity"] != nil) {
        #if HEARTBEAT_PIRACY_THRESHOLD >= 2
        NSString* infoPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
        if([[NSString stringWithContentsOfFile:infoPath encoding:NSUTF8StringEncoding error:NULL] rangeOfString:@"</plist>"].location != NSNotFound) {
            #if HEARTBEAT_PIRACY_THRESHOLD >= 3
            NSDate* infoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:infoPath traverseLink:YES] fileModificationDate];
            NSDate* pkgInfoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"PkgInfo"] traverseLink:YES] fileModificationDate];
            if([infoModifiedDate timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {      
            #endif
        #endif
                isCracked = YES;
        #if HEARTBEAT_PIRACY_THRESHOLD >= 2
            #if HEARTBEAT_PIRACY_THRESHOLD >= 3
            }
            #endif
        }
        #endif
    }   
#endif

    didCheck = YES;

    return isCracked;
#endif
}
#endif
2
ответ дан 17 December 2019 в 18:09
поделиться

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

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

Версия 2 выглядит даже лучше, хотя теперь обязательное пожертвование составляет не менее 30 долларов, что по-прежнему выгодно.

2
ответ дан 17 December 2019 в 18:09
поделиться

Простой. Вы устанавливаете флаг pleaseDoNotPirateThisAppPrettyPlease в 1 в своем списке.

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

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

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

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

-1
ответ дан 17 December 2019 в 18:09
поделиться

Я понимаю желание сделать это, но, поскольку его невозможно остановить или почти не замедлить, забудьте об этом и двигайтесь дальше. Сделайте свое приложение лучше, добавляйте функции, создавайте дополнительные приложения. Все это поможет вам заработать больше долларов, чем вы сэкономите, беспокоясь о пиратстве. Помните, что только то, что 100 человек пиратят ваше программное обеспечение, не означает, что вы потеряли 100 продаж. Возможно, вы потеряли 0 продаж, поскольку эти люди запускали ваше программное обеспечение только потому, что могли бесплатно, и не имели бы интереса платить. MPAA и RIAA делают эту ошибку годами, и, если вы не готовы подать в суд на всех пиратов, ничто из того, что вы сделаете здесь, не поможет вам заработать больше долларов.

0
ответ дан 17 December 2019 в 18:09
поделиться

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

0
ответ дан 17 December 2019 в 18:09
поделиться