2012-07-23 103 views
7

我的朋友得到了越狱的iPad。当他用Installous安装商业模型的生成应用程序,并试图使用它,应用表现出UIAlertView以下消息: Hacked Version检测iOS应用是否被黑客入侵

是否有人知道如何做到这一点?

我有2个想法:

  1. 如果有一些设置的标志,当你从App Store下载的应用程序,那么你可以使用此标志:如果flag = NO,你展现UIAlertView
  2. 东西与服务器(但在这种情况下,你应该知道所有的设备ID和谁安装的App Store应用程序)。

我说得对不对?我怎样才能实现这个功能?

+1

我敢打赌,第二种方法是在大多数情况下 – 2012-07-23 09:23:17

+0

的使用,我怎么知道没事的ID? – 2012-07-23 09:24:51

+0

也许他们添加的应用程序的一个特殊版本的越狱商店有特殊警报视图,并保持正常的应用程序商店的版本不变 – CarlJ 2012-07-23 09:25:49

回答

9

您可以检测两个文件:SC_InfoiTunesMetadata.​plist

如果你不能找到他们,那么你的应用程序是盗版:这些文件是从App Store下载后安装。

这是代码检查:

NSString * bundlePath = [ [NSBundle mainBundle] bundlePath ]; 
if (! [ [NSFileManager defaultManager] fileExistsAtPath: (@"%@/SC_Info", bundlePath) ]) 
{ 
    // jailbroken 
} 
if (! [ [NSFileManager defaultManager] fileExistsAtPath: (@"%@/iTunesMetadata.​plist", bundlePath) ]) 
{ 
    // jailbroken 
} 
+0

奇怪的事情,@Eugene,我无法在我自己的ipa中找到SC_Info和iTunesMetadata.plist。 – Tertium 2012-10-25 21:54:47

+2

@Tertium,这个文件将被添加到AppStore中。所以你应该从AppStore下载你的应用程序,然后你会发现他们 – 2012-10-26 04:09:36

+1

你如何在提交前测试它?例如我认为你的代码本身有错误,应该是:[NSFileManager defaultManager] fileExistsAtPath :([NSString stringWithFormat:@“%@/SC_Info”,bundlePath] – Idan 2013-05-07 20:41:12

2

有一些库,如果一个应用程序被破解(越狱和也)围绕它可以检测,这question给出了一个很好的概述,但基本上它通过检查签名者身份

一个库是AntiCrack完成。我还没有使用这个库,所以我不知道它有多好作品

-3

这是相当简单的,但如果安装Cydia的应用程序,你可以检查(通过检查,如果是文件夹存在)。如果已安装,则不信任该设备。这可能会导致不正确地泄露从应用程序商店下载应用程序的越狱iPhone/iPad。

+1

但是当他们jailbroke一些民族可以购买应用程序..这就是为什么这是不是一种选择 – 2012-07-23 09:55:11

+0

这实际上是真实的。 – 2012-07-23 09:56:39

+1

这不会起作用,因为App Store应用程序是沙盒式的,所以检查沙箱外的目录不是一个选项 – WrightsCS 2012-07-24 04:46:09