Как сделать приложение для iOS доступным?

Я работаю над проектом (мобильное приложение), где мне нужно отслеживать действия противника. Итак, мой вопрос: как я могу сделать приложение iOS очевидным?

например

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

Я нашел решение для Android, как ProGuard, SafetyNet но не нашел ничего для iOS.

3 ответа

Я использовал это обнаружение JailBreak в одном из моих проектов.

С этим вы можете предотвратить возможность.

    if ([DTTJailbreakDetection isJailbroken]) {

// your custom activity and business logic here
    }

Кроме того, в точности вы можете использовать приведенный ниже фрагмент:

BOOL isJailbroken()
{
#if !(TARGET_IPHONE_SIMULATOR)

   if ([[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"] ||
       [[NSFileManager defaultManager] fileExistsAtPath:@"/Library/MobileSubstrate/MobileSubstrate.dylib"] ||
       [[NSFileManager defaultManager] fileExistsAtPath:@"/bin/bash"] ||
       [[NSFileManager defaultManager] fileExistsAtPath:@"/usr/sbin/sshd"] ||
       [[NSFileManager defaultManager] fileExistsAtPath:@"/etc/apt"] ||
       [[NSFileManager defaultManager] fileExistsAtPath:@"/private/var/lib/apt/"] ||
       [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://package/com.example.package"]])  {
         return YES;
   }

   FILE *f = NULL ;
   if ((f = fopen("/bin/bash", "r")) ||
      (f = fopen("/Applications/Cydia.app", "r")) ||
      (f = fopen("/Library/MobileSubstrate/MobileSubstrate.dylib", "r")) ||
      (f = fopen("/usr/sbin/sshd", "r")) ||
      (f = fopen("/etc/apt", "r")))  {
         fclose(f);
         return YES;
   }
   fclose(f);

   NSError *error;
   NSString *stringToBeWritten = @"This is a test.";
   [stringToBeWritten writeToFile:@"/private/jailbreak.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
   [[NSFileManager defaultManager] removeItemAtPath:@"/private/jailbreak.txt" error:nil];
   if(error == nil)
   {
      return YES;
   }

#endif

   return NO;
}

Также, Obfuscation в iOS - цель C, вы можете использовать эту библиотеку с открытым исходным кодом и для Methods & Classes.

Помимо обнаружения взломанного устройства и обфусцирования кода (как упомянуто @itechnician), вы можете:

  • Определите, подключен ли отладчик: https://developer.apple.com/library/content/qa/qa1361/_index.html
  • Проверьте команды загрузки в заголовке Mach-O, чтобы проверить, есть ли что-то введенное
  • Проверьте целостность кода

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

Вы можете найти эти ссылки полезными:

https://www.coredump.gr/articles/ios-anti-debugging-protections-part-1/ https://www.raywenderlich.com/45645/ios-app-security-analysis-part-1 http://resources.infosecinstitute.com/ios-application-security-part-31-problem-using-third-party-libraries-securing-apps/

Эта книга немного старая, но все же полезная: http://shop.oreilly.com/product/0636920023234.do

Вот обфускаторы ObjC / строковые шифры с открытым исходным кодом:

Я думаю, что ты выглядишь как ixguard

Другие вопросы по тегам