歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android反編譯與防止反編譯

Android反編譯與防止反編譯

日期:2017/3/1 10:09:34   编辑:Linux編程

1、Android反編譯

1)下載兩個工具 dex2jar,jar2java
相關閱讀下載見:http://www.linuxidc.com/Linux/2011-02/32775.htm

2)修改apk後綴為.zip,解壓得classes.dex

3)用dex2jar.bat打開classes.dex得到classes.dex.dex2jar.jar

4)用jar2java打開上面得到的jar包即得Java文件

2、Android防止反編譯

這裡介紹的Android反編譯工具是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-project.txt。我們可以通過簡單的配置,在elipse工程中直接使用ProGuard混淆Android工程。

使用方法:

1)打開project.properties

2)找到這句話

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

把前面的"#"去掉

3)Android tools --> Export Application Package

3、對比

未使用Proguard,反編譯的結果

使用Proguard後,反編譯的結果

Copyright © Linux教程網 All Rights Reserved