如何使iOS应用程序篡改?

pra*_*ngh 11 security monitor tampering ios

我正在研究一个项目(移动应用程序),我需要监视对手的行动.所以,我的问题是如何让iOS应用程序篡改?

例如

  • 每当任何对手试图篡改代码时,系统都应该警告管理员这些操作
  • 阻止那个对手
  • 如果用户尝试在rooted设备上安装app,则系统可以检测到该问题.
  • 系统应该能够监控对手的行为.

我找到了类似android的解决方案ProGuard,SafetyNet但没有为iOS找到任何东西.

ite*_*ian 9

我在我的一个项目中使用过这个JailBreak检测器.

有了这个,你可以防止这种可能性.

    if ([DTTJailbreakDetection isJailbroken]) {

// your custom activity and business logic here
    }
Run Code Online (Sandbox Code Playgroud)

此外,准确地说,您可以使用以下代码段:

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;
}
Run Code Online (Sandbox Code Playgroud)

此外,iOS中的混淆 - 目标C您可以使用此开源库以及方法和类.