2010-03-17 32 views
0

鑑於我的應用需求,我需要處理幾個場景。如何通過服務器端驗證來避免iPhone應用程序中的盜版?

情況1:爲了避免盜版,我想包括一些代碼,它的工作是發送IMEI和iPhone的序列號。

場景2:在服務器端,我有一個數據庫,它有一個IMEI和序列號信息的列表。這裏我想驗證IMEI和序列號。如果兩者都不匹配,那麼我可以確保該應用程序是盜版的。

想法看起來不錯。但我不知道如何在我的應用程序中處理這兩種情況。

任何幫助,非常感謝。

+0

重複? http://stackoverflow.com/questions/846309/reducing-piracy-of-iphone-applications – 2010-03-17 13:17:00

+1

此鏈接及其「解決」陳述完全過時。這種檢查簽名者身份的技術被大多數黑客繞過,今天完全無用。 – yonel 2010-03-17 14:55:23

回答

4

這不是你可以用iPhone SDK做的事情。 iPhone的IMEI或序列號無法通過任何API訪問。此外,iPod Touch甚至沒有IMEI。

你的想法也是有缺陷的。在應用程序向您發送詳細信息之前,您如何將IMEI和序列號獲取到您的服務器數據庫中?購買過程中無法獲取這些詳細信息,因爲它由App Store處理,您無法獲取這些詳細信息。

如果該應用程序是盜版的,它會向您發送IMEI和序列號,所以您不能依賴應用程序在第一次運行時發送它們,因爲這完全不能保護您免受盜版。

您擁有的唯一選擇是依靠Apple的fairplay DRM。即使它已被破解,並有海盜,這是你只需要處理...

+1

我想補充一點,盜版根本不是iPhone上的主要問題。 (1)只有少數應用程序足夠昂貴,以誘使人們竊取它們。 (2)只有少數用戶具有這樣的技術能力,並且(3)只有少數用戶願意承擔破解應用程序不是惡意的風險(4)只有少數用戶使用越獄手機。爲了防止盜版,你會失去浪費資源的更多資金,而不是通過阻止盜版來收回資源。這不符合成本效益。 – TechZen 2010-03-17 16:19:18

+0

@Jasarien,IMEI或其他獨特的東西(UDID)。忘記其他細節。只需要將UDID/IMEI的腳本作爲參數調用即可。然後,此腳本需要比較存儲值(位於數據庫中)上的UDID並返回一個值。 這是總的想法。 – prathumca 2010-03-19 09:12:34

+0

這一切都很好,但你打算比較應用程序發送的UDID?唯一可以從手機獲取UDID的時間是用戶首次運行應用程序時。除非您打算僅支持您已知道UDID的特定設備,否則在應用程序首次將UDID發送到服務器之前,您將無法與其進行比較。問題在於這不會防止盜版,因爲應用程序在第一次運行之前可能會被盜版,所以盜版應用程序仍然可以發送有效的UDID。 (接下來的評論) – Jasarien 2010-03-19 09:42:51

相關問題