使用 Android 內建的 proguard 混淆源碼

來源:互聯網
上載者:User

  一直以來對於android的項目就沒有進行混淆,因為就算混淆了也不能混淆 Activity,Service,BroadcastReceiver 這些類,所以別人反編譯也能分析出來。並且自己的代碼本來就沒有什麼牛逼哄哄的地方,因此更沒有混淆的理由了。但是最近研究android越多,反編譯越多,發現大多數應用都是混淆了的,在分析源碼的時候,發現也有一定掩人耳目的價值,故自己也嘗試了一下混淆。

  

  我的ADT 版本是 10,因此混淆是有的,我也不知道從 ADT 哪個版本開始有 proguard,因此你要保證你的 “sdk目錄\tools\” 下有 proguard 這個檔案夾。

     

  現在我們在 eclipse 中建立一個項目,一般都會出現 proguard.cfg 這個檔案。這個檔案 便是我們的混淆指令檔,好在的是 ADT 提供了懶人解決方案,因此一般乃至於大多數情況下,我們是不需要更改這個 混淆指令檔。當然如果你想要知道更多有關 proguard 以及混淆指令碼的知識可以訪問你安裝好的SDK文檔:

你的SDK安裝目錄\docs\guide\developing\tools\proguard.html

  

  這裡我使用Samples 中的 NotePad 舉例

  

  大家可能注意到了,沒有 proguard.cfg 這個混淆指令檔,沒關係,我們從其他項目中複製一個過來。

  然後我們在 default.properties 這個檔案裡添加一句代碼,讓編譯器在 release 的時候自動運行 ProGuard 調用 proguard.cfg 指令碼進行混淆

  

  由於在 Debug 下,不可能會有人會混淆代碼,因此這隻在release中有效。

  接下來我們匯出此項目的未簽名apk

  

  然後,我們使用 dex2jar 把本apk中的dex轉為jar,再用 jd-gui 進行反編譯查看,下面我們就可以發現,我們的apk已經混淆了,HOHO~~~

  

  Have fun!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.