Android 上線前的代碼混淆之(一)反編譯

本經驗總結針對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的問題我覺得是應用過大而做的處理!大家可以搜索學習!我們這裏先學習下反編譯技能用來後面章節混淆的驗證!

反編譯結束!

發佈了37 篇原創文章 · 獲贊 2 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章