2011-11-30 58 views
2

我開發了一款iPhone應用程序,它通過基於XML的通信模型與Web服務器進行通信。黑客iOS應用程序的源代碼

在我的一個源文件NetworkLayer中,我創建了XML對象並將它們發送到Web服務器。我還在MyApp_Prefix.pch中聲明瞭在我的應用程序中使用的所有常量以及URL(用於訪問我的Web服務器)。

我想問一下,如果有一些黑客可以訪問我的源代碼生成XML對象或MyApp_Prefix.pch文件,如果他有我的應用程序的文件.app?任何人都可以在這方面幫助我嗎?

+0

如果黑客在您的網絡中並使用數據包嗅探器,訪問該URL很容易。相信我,我已經在Wireshark的辦公室完成了它:p – elitalon

回答

2

黑客可以通過查看代碼告訴設備執行哪些操作來反向設計代碼。通過對裝配和逆向工程的一些努力和知識,人們可以看到你的代碼包含的東西。然而,這需要一些認真的努力和大量的時間,所以對於大多數應用程序來說,任何人都不可能嘗試這樣做。

一個更簡單的方法是截取數據在它往返於服務器的路上,除非您在混淆數據,加密數據或使用SSL,否則無法防止這種情況發生。

如果你擔心保護你的數據,你應該嘗試一些簡單的混淆。有很多方法可以做到這一點,最流行的方法是XOR:用客戶端和服務器都知道的密鑰來存儲數據。應用密鑰會翻轉數據中的位,並快速輕鬆地將其變爲無法讀取的亂碼。再次應用相同的密鑰將再次翻轉相同的位,並且您具有完全可讀的XML。

應該指出,XOR加密很可能並且相對容易破解,特別是因爲密鑰必須作爲應用程序的一部分存儲,但它需要大量時間和努力來突破,而且不需要合法地認定爲加密(例如,在發佈應用程序時,您不需要經歷整個加密導出的事情),同時仍然保持數據亂碼足以讓大多數人甩掉 - 這通常就足夠了,除非您的數據是非常敏感,例如。如果您轉移支付憑證或類似的。

7

不,他不能得到你的源代碼。但他可以查看HTTP請求和響應,以查看您創建的XML以及服務器已發回的內容。這很重要嗎?

+0

或者(使用像Charles這樣的代理)和/或使用IDA等分析工具對您的代碼進行逆向工程。在混淆中沒有安全性 - >沒有源代碼不能阻止任何事情! – Till

+0

@rob,他怎麼看待我的HTTP請求和響應?我正在使用HTTPS。 – Aqueel

+0

[如何嗅探/劫持HTTPS/SSH連接](http://monkey.org/~dugsong/dsniff/faq.html#How%20do%20I%20sniff%20/%20hijack%20HTTPS%20/%20SSH %20connections) –