2010-09-25 49 views
-1

所以基本上我正在研究一個應用程序,其中一個功能是防破解功能。它檢查網頁上的設備的UDID號碼,如果它在那裏,它允許應用程序運行,如果它不在那裏,則運行exit(0);.到目前爲止,這就是我所擁有的。將NSString與網站上文本段落的一部分進行匹配。 - iPhone SDK

這是我AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [window addSubview:mainViewController.view]; 

    if ([[[UIDevice currentDevice] uniqueIdentifier] isEqualToString:[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://example.com" ]]]) { 
     NSLog(@"Match!"); 
     [window makeKeyAndVisible]; 
    } 
    else { 
     NSLog(@"No match."); 
     alertView = [[UIAlertView alloc] initWithTitle:@"Access denied!" message:@"You aren't using an official version of this application." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil]; 
     [alertView show]; 
     [alertView release]; 
    } 

    return YES; 
} 

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex { 
    if (buttonIndex == 0) { 
    exit(0); 
    } 
} 

所以基本上,在那裏你看到

if ([[[UIDevice currentDevice] uniqueIdentifier] isEqualToString:[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://example.com" ]]]) { 

當它運行的是,它只能探測到的所有文本,而不是建立索引並找到該UDID號碼。所以我只能在那裏放置1個UDID號碼,因此會導致每個用戶的應用程序崩潰。我想設置它,這樣我就可以擁有儘可能多的東西,並且只需索引它並在頁面上搜索該UDID編號即可。有人可以幫我嗎?這很重要!

非常感謝!

+0

嗨。 這對企業臨時應用程序很有用。 您是否找到丹尼爾的解決方案? 乾杯, Ompah – Ompah 2010-10-20 12:53:55

回答

2

耶,所以如果我買你的應用程序和你的服務器關閉(stringWithContentsOfURL返回零)你的應用程序會認爲我盜版你的軟件!

如何花費時間在無錯最終用戶功能而不是此?

+0

不,你不明白這一點。如果UDID號碼未在網站上列出,則應用程序自行終止。你甚至讀過代碼嗎?該網站是白名單,而不是黑名單。編輯*沒關係,對不起。快速閱讀它,並認爲你說如果你破解它。基本上,服務器崩潰將取決於Apple。所以這將是他們的問題,因爲它託管在iDisk上。 – 2010-09-25 19:20:18

+0

我非常理解你在做什麼,我認爲這是一個非常愚蠢的事情來實現。如果iDisk由於任何原因(維護,本地路由問題,防火牆,互聯網問題等等)而無法使用,並且LEGIT用戶無法使用該應用程序,因爲您認爲他是盜版軟件,那麼究竟是什麼問題?我認爲,只要有人發現,你可以期待很多退款和糟糕的評論。 – 2010-09-26 22:28:01

0

至於我,它會更容易產生的UDID的XML,然後將其解析到一個數組,然後每個元素與paticular UDID比較

+0

你能解釋一下如何做到這一點? – 2010-09-25 19:22:55

+0

您將創建一個包含udid列表的網頁。我建議你用xml頁面替換你的網頁,其結構像然後實現NSXMLParser的委託,它可以將這個xml頁面解析成一個數組。如果解析是一個問題,請告訴我。 – knuku 2010-09-26 08:54:19

+0

對不起,你可以做一些示例代碼嗎?我對SDK的這一部分並不熟悉,而且非常混亂。謝謝! – 2010-09-26 14:07:30

2

我不明白這是怎麼應該是一個「反開裂功能「,除非您計劃以某種方式獲取通過iTunes合法購買您的應用程序的用戶的所有設備的UDID。你不能得到這樣的清單。即使可以,也可能違反了Apple的開發者協議,尤其是關於隱私和信息存儲的部分。

因此,在總結:

  • 該解決方案從根本上存在致命的缺陷。
  • 還有其他的抗裂技術會更有效,特別是那些使用更柔和的方法......但沒有一個會是完美的。
  • 正如St3fan所說,你的技術需要一個可以正常工作的互聯網連接,這並不總是你能想到的。在這種情況下,這種技術不會失敗。在這種情況下,Apple可以拒絕您的應用。如果失敗,它不會是「[Apple]問題」。這是你的問題。
+0

它針對的是Jailbreak社區,該應用僅適用於iPhone。你能告訴我如何掃描整個網頁?謝謝。 – 2010-09-25 19:58:20

+0

無論您的目標社區如何,該方法都存在根本性缺陷。另外:*越獄*社區的抗開裂解決方案?你是認真的嗎? – 2010-09-25 20:23:48

+0

無論您嘗試多麼努力,**某人**都會繞過您的解決方案。每年花費數十億美元用於蘋果,微軟和谷歌等公司的反盜版措施 - 你認爲你能做得更好嗎?而且,正如Shaggy所說,這種方法根本行不通。如果合法付費的應用嘗試在超出WiFi範圍或沒有蜂窩數據連接的情況下使用該應用,該應用即將退出。當應用程序在iPhone上自行退出時,用戶會因爲其行爲相同而導致崩潰。人們會認爲你的應用崩潰了。 – Jasarien 2010-09-25 20:29:05