2011-08-22 136 views

回答

3

嘗試對您自己的應用程序進行逆向工程。看看你可以在代碼中讀到什麼。

使用以下問題:

decompiling DEX into Java sourcecode

http://www.taranfx.com/decompile-reverse-engineer-android-apk

+1

謝謝你。我解編了兩個不同的應用程序,一個是我混淆的應用程序,另一個是我沒有混淆的應用程序。來自兩個應用程序的代碼(非模糊和混淆)看起來都是一樣的。變量名稱已更改,但類名稱和其他內容保持不變。這是如何混淆的作品?我沒有混淆的項目如何在變量名稱中發生變化? – dell116

+0

這取決於你如何設置proguard工作......但我沒有太多的經驗! –

11

查找dump.txtmapping.txt,seeds.txtusage.txt。他們可能位於項目目錄的proguard文件夾中。這些是在您的代碼上運行ProGuard時創建的。

這些充滿了有關混淆的信息,特別有用的是mapping.txt,它顯示了ProGuard將您的各種成員名稱轉換爲的內容。

+1

我在項目目錄中有一個ProGuard文件夾,但它裏面有zilch ....沒有任何....我是否假設ProGuard沒有正確混淆我的代碼?這些文件可以在任何其他目錄嗎? – dell116

+0

你的項目下有任何'proguard'文件夾嗎?如果沒有,我會說它可能沒有正確運行。 –

+0

Yes..proguard文件夾在那裏...但是沒有內容....我找不到你在硬盤上任何地方提到的任何文件...所以當我通過proguard運行時, ....呃哦...... – dell116

0

DISCALIMER:我不是decompileandroid.com的主人,我沒有支付,以促進它。我是一個發明者,對這項服務感到滿意。

實際上比獲取多個不同工具並將其中一個工具的輸出傳遞給另一個工具更容易(這當然可以更好地控制發生的情況)。您可以使用該服務

decompileandroid.com

基本上你上傳.apk文件和它所有的這些步驟你。 然後,您可以下載一個.zip文件,其中包含反編譯的源代碼。

您可以先上傳以調試模式構建的.apk,然後上傳內置發佈模式的.apk。只要確保在您的build.gradle文件中將標記minifyEnabled設置爲true即可。

我的情況差異很明顯 - 我的大多數課程在縮小版本中被命名爲a,b,c等。

+0

哎呀!我的意思是,我相信你已經知道上傳一個可調試的和非混淆的構建到Web服務器的影響。畢竟,我們是在談論混淆,因此第三方無法閱讀您的代碼。雖然這個網站看起來不錯,但我不確定我會信任它。 – dell116

+0

是的,當然在大多數情況下,您不想將APK上傳到遠程服務器。尤其是商業項目。我只是把它作爲一個更簡單的選擇。在我的情況下,這是一個測試項目,所以我沒有什麼可以關心的。當然,如果這也不是問題,那麼總是可以只上傳混淆的版本。在這種情況下,人們會看到混淆的效果。 –