歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 如何混淆Android項目代碼(ProGuard)防止反編譯

如何混淆Android項目代碼(ProGuard)防止反編譯

日期:2017/3/1 10:41:52   编辑:Linux編程

ProGuard簡介

ProGuard是一個SourceForge上非常知名的開源項目。官網網址是:http://proguard.sourceforge.net/。

Java的字節碼一般是非常容易反編譯的。為了很好的保護Java源代碼,我們往往會對編譯好的class文件進行混淆處理。ProGuard的主要作用就是混淆。當然它還能對字節碼進行縮減體積、優化等,但那些對於我們來說都算是次要的功能。

Android Eclipse開發環境與ProGuard

在Android 2.3以前,混淆Android代碼只能手動添加proguard來實現代碼混淆,非常不方便。而2.3以後,Google已經將這個工具加入到了SDK的工具集裡。具體路徑:SDK\tools\proguard。當創建一個新的Android工程時,在工程目錄的根路徑下,會出現一個proguard的配置文件proguard.cfg。也就是說,我們可以通過簡單的配置,在我們的elipse工程中直接使用ProGuard混淆Android工程。

具體混淆的步驟非常簡單。首先,我們需要在工程描述文件default.properties中,添加一句話,啟用ProGuard。如下所示:

  1. # This file is automatically generated by Android Tools.
  2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
  3. #
  4. # This file must be checked in Version Control Systems.
  5. #
  6. # To customize properties used by the Ant build system use,
  7. # "ant.properties", and override values to adapt the script to your
  8. # project structure.
  9. # Project target.
  10. target=android-8
  11. proguardproguard.config=proguard.cfg

這樣,Proguard就可以使用了。當我們正常通過Android Tools導出Application Package時,Proguard就會自動啟用,優化混淆你的代碼。

導出成功後,你可以反編譯看看混淆的效果。一些類名、方法名和變量名等,都變成了一些無意義的字母或者數字。證明混淆成功!

ProGuard 的詳細介紹:請點這裡
ProGuard 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved