2012-12-04 91 views
1

我正在開發一個android電子郵件客戶端應用程序,並使用kso​​ap2庫調用webservices,並且還編寫了一些加密算法來加密我的客戶端中的數據。Android - 不想反編譯我的apk文件

在一些網站,我讀過「可以使用反編譯器反編譯apk」。 (即)從apk文件獲取源代碼。

但我想保護我的代碼。反編譯後不顯示加密算法代碼或不想解壓我的apk文件。有可能這樣做嗎?請你能提出一些建議嗎?

+1

Proguard將幫助您 – Yahor10

+0

作爲一個選項,您可以將某些業務邏輯移至本地模塊(使用NDK進行編譯)。當然,這樣的模塊也可以反編譯爲ARM彙編程序,但不能用於高級語言,因此分析起來要困難得多。 –

回答

9

編輯文件(在項目根)project.propiertie S和添加行

proguard.config=proguard.cfg 

並對其做。當您嘗試生成應用程序的已簽名apk時,它會花費更長時間,並且會被混淆。

如果您在生成apk時收到「轉換爲達爾維克錯誤」,則需要更新sdk的proguard。爲了做到這一點,你需要去ProGuard頁面下載部分。下載最新的穩定版本並將其內容加入

SDK_ROOT/tools/proguard 

當然在刪除現有內容之前。

您可以檢查在他們的網頁Proguard的手冊(鏈路上)與Android's Proguard page更多信息有關ProGuard的

這個過程被稱爲模糊處理的代碼。

編輯:

步驟獲得obfusticated APK:

1)從 「http://sourceforge.net/projects/proguard/files/」 下載最新的ProGuard。 2)用最新下載的proguard文件夾替換「C:\ Program Files(x86)\ Android \ android-sdk \ tools \ proguard」的「bin」和「lib」文件夾。

3)檢查eclipse中的SDK位置是否有空格,並進入窗口>首選項> Android。如果有空格,然後將其替換爲:

c:\Progra~2\android\android-sdk (for windows 64-bit) 
c:\Progra~1\android\android-sdk (for windows 32-bit) 

4)檢查proguard.cfg文件是在你的項目的根文件夾,並添加「proguard.config = proguard.cfg」在Android項目的project.properties文件。

5)現在導出您的項目得到obfusticated apk。

我希望這會有所幫助。

2

您不能依賴security through obsurity

如果您覺得加密數據會因加密算法的知識而受到影響,那麼您就沒有做安全性。

0

如果「黑客」知道如何這樣做,反編譯任何文件始終是可能的。這就是爲什麼付費應用程序仍然存在問題,因爲人們利用業餘時間來反編譯/破解應用程序。你所能做的就是通過儘可能多地使用工具來讓他們很難過。第一種選擇(默認情況下禁用)是ProGuard