根據此鏈接: http://developer.android.com/guide/developing/tools/proguard.html,他們的狀態:Proguard的不混淆Android應用
ProGuard的使您的應用程序更難進行逆向工程,重要的是你,當你的應用程序使用那些對敏感的特性使用是非常重要的安全性就像您正在授權您的應用程序一樣。
但事實並非如此!我使用的是包含在ADT 17預覽4.最新的Proguard的(4.7):我用proguard的同時,通過增加
proguard.config=proguard-android.txt
進入我的project.properties(proguard的-android.txt出口我的應用程序僅僅是包括在默認設置在ADT 17中)。
但我可以很容易地逆向工程我的APK,將其返回到它使用這些步驟的原始代碼:
使用APK-工具提取APK。
使用smali到.smali文件轉換成一個.DEX(你點smali含有.smali文件夾,通常內部/ src目錄/ COM/[公司名稱]/[應用程序名稱])
使用dex2jar所得到的.DEX文件轉換成一個.jar
使用JD-GUI來查看生成的.jar文件
所以我的問題是: 難道我做錯了什麼?或者是proguard在混淆代碼時完全沒用?
這只是說難以逆向工程,但要做到這一點並不是不可能,就像你所做的一樣。我發現人們主要使用它來減少代碼的大小。 – 2012-03-15 07:42:16
哈哈然後我很想知道他們對「簡單」的定義。任何應用程序都可以在4個命令中進行反向設計!我可以訓練一隻猴子來做那件事。 – 2012-03-15 11:49:08
爲了澄清,你在'jd-gui'中看到了什麼,你期望看到什麼?你能看到原始代碼,粗略地說,你是如何編譯它的?你在你的方法中看到了原始的變量名嗎? – 2012-03-15 19:39:41