我有一個Android項目,最近我通過ProGuard模糊處理後發佈到市場。與ProGuard的Android代碼混淆......如何知道它被混淆了?
該項目導出沒有任何併發症,但我怎麼知道它被混淆了?我能做些什麼來驗證混淆是否成功?
我有一個Android項目,最近我通過ProGuard模糊處理後發佈到市場。與ProGuard的Android代碼混淆......如何知道它被混淆了?
該項目導出沒有任何併發症,但我怎麼知道它被混淆了?我能做些什麼來驗證混淆是否成功?
嘗試對您自己的應用程序進行逆向工程。看看你可以在代碼中讀到什麼。
使用以下問題:
decompiling DEX into Java sourcecode
http://www.taranfx.com/decompile-reverse-engineer-android-apk
查找dump.txt
,mapping.txt
,seeds.txt
和usage.txt
。他們可能位於項目目錄的proguard
文件夾中。這些是在您的代碼上運行ProGuard時創建的。
這些充滿了有關混淆的信息,特別有用的是mapping.txt
,它顯示了ProGuard將您的各種成員名稱轉換爲的內容。
DISCALIMER:我不是decompileandroid.com的主人,我沒有支付,以促進它。我是一個發明者,對這項服務感到滿意。
實際上比獲取多個不同工具並將其中一個工具的輸出傳遞給另一個工具更容易(這當然可以更好地控制發生的情況)。您可以使用該服務
基本上你上傳.apk文件和它所有的這些步驟你。 然後,您可以下載一個.zip文件,其中包含反編譯的源代碼。
您可以先上傳以調試模式構建的.apk,然後上傳內置發佈模式的.apk。只要確保在您的build.gradle
文件中將標記minifyEnabled
設置爲true
即可。
我的情況差異很明顯 - 我的大多數課程在縮小版本中被命名爲a,b,c等。
哎呀!我的意思是,我相信你已經知道上傳一個可調試的和非混淆的構建到Web服務器的影響。畢竟,我們是在談論混淆,因此第三方無法閱讀您的代碼。雖然這個網站看起來不錯,但我不確定我會信任它。 – dell116
是的,當然在大多數情況下,您不想將APK上傳到遠程服務器。尤其是商業項目。我只是把它作爲一個更簡單的選擇。在我的情況下,這是一個測試項目,所以我沒有什麼可以關心的。當然,如果這也不是問題,那麼總是可以只上傳混淆的版本。在這種情況下,人們會看到混淆的效果。 –
謝謝你。我解編了兩個不同的應用程序,一個是我混淆的應用程序,另一個是我沒有混淆的應用程序。來自兩個應用程序的代碼(非模糊和混淆)看起來都是一樣的。變量名稱已更改,但類名稱和其他內容保持不變。這是如何混淆的作品?我沒有混淆的項目如何在變量名稱中發生變化? – dell116
這取決於你如何設置proguard工作......但我沒有太多的經驗! –