2012-07-23 38 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