本經驗總結針對Android 4.0(sdk 14 ) 以上:
一般項目做好以後,大部分公司爲了安全會進行代碼混淆來增加安全性,防止反編譯和破解!
google Android 給我們提供了proguard 進行代碼混淆,廢話不多說,我剛剛接觸的時候,感覺特別高深!感覺無從下手啊,於是就度娘了一下,各種帖子,各種方法!
要想學會還得自己試試看!
要學習,混淆我覺得我們還是先學學反編譯吧,要不自己又看不到是否混編了,有沒有效果
首先下載反編譯工具:
dex2jar 反編譯工具包點擊打開鏈接
然後開始我們的反編之旅吧!
反編
反編第一步,我們準備一個簡單的打包文件這裏我們直接新建一個HelloWorld項目然後在代碼裏增加一些代碼內容如下:
導出apk文件:Helloworld.apk 然後修改擴展名Helloworld.rar 通過winrar解壓縮我們看到
將dex文件複製到dex2jar文件夾下,開始反編譯命令如下:
然後通過jd-jui工具打開查看生成的classes_dex2jar.jar包,我們震驚了!
我們的代碼被一字不落的反編譯了!
至此,我們反編譯成功了!當然,這裏只是反編一個我們自己的apk,如果我們打開應用市場上的apk 譬如說QQ的,我們來試試看吧!
一看暈菜了,三個dex文件,那麼我們一個一個來反編譯看看吧看會有什麼結果:
隨便打開一個看看,雖然大部分可以看到類名,但是當你打開的時候發現很多方法名字都變化了變成了abcd!對這就是對代碼進行了混淆,雖然我們也反編譯了,但是完全看不懂!
還有其他兩個dex,我們可以自己嘗試反編下看看,至於多個dex的問題我覺得是應用過大而做的處理!大家可以搜索學習!我們這裏先學習下反編譯技能用來後面章節混淆的驗證!
反編譯結束!