Android studio配置progard工具生成混淆APK,并使用dex2jar、JD反编译查看效果
刚开始查了很多资料(主要是一些博客、简书),这些资料里读给出了具体的步骤,包括一些非常详细的配置代码,可能是对那些内容的理解不太到位,所以就直接将那些配置复制粘贴,但那个非常简单的helloworld程序一直混淆失败——反编译后java代码为空。
下面我将介绍如果混淆一个最简单的程序,并将其反编译查看混淆效果。
工具:
1)java混淆器,android studio自带的有
作用:将源代码混淆,使反编译后增加阅读理解的难度
免费下载地址:-
2)反编译工具dex2jar
作用:将安卓 apk中的classes.dex文件转换为 jar 文件
免费下载地址:http://download.****.net/detail/zhuang_stark/9923681
3)java反编译工具jd-gui
作用:查看jar文件中的源代码
免费下载地址:http://download.****.net/detail/zhuang_stark/9923712
下面我将从混淆APK、反编译查看java代码这两块儿来写
一、混淆APK
-1-
打开android studio,选择一个module,打开它的build.gradle文件,将minifyEnable = false改为 minifyEnable = true 就是打开混淆的开关,其他先不用变。nimifyEnable = true 的下一行中的progard--android.txt是默认的配置,一般不需要更改。如图:
-2-
打开混淆开关后,接着就是在progard-rules.pro里进行混淆配置。其实,只要打开了混淆开关,那么打包的APK就已经是被混淆了的。比如只是想熟悉一下混淆的流程,那么这个文件里面就可以不用写配置内容了。如果是大的应用车程序,要有针对性的混淆的话,请参考链接这篇博客:点击打开链接
-3-
生成apk。android studio下找到 Build -> Generate Signed APK,选择你要生成哪个module的apk,然后生成apk。
二、java反编译查看代码
-1-
将生成的 .apk 文件后缀改为 .rar 或者 .zip ,具体看你使用什么压缩文件了,将该文件解压,里面有个classes.dex文件,是java代码打包文件。如图:
-2-
下载dex2jar.zip后,将其解压,找到里面的dex2jar.bat文件所在的位置,一般就在XXXX\dex2jar-0.0.9.15\目录下面。
-3-
将上面的classes.dex文件放到dex2jar.bat所在的文件夹下。打开cmd,进入dex2jar.bat所在的位置,执行 dex2jar.bat classes.dex 命令,就会在该位置生成一个jar文件。
-4-
将下载的jd-gui.zip解压。找到解压文件夹下的jd-gui.exe文件,点击运行,你会发现界面非常简洁。点击右上角的“file”,然后点击“open file”,打开你刚才生成的jar文件,你就可以看到混淆后的java代码了。
混淆后反编译代码:
源代码:
对比会发现,源代码别混淆了。并且源代码里面的标注出来的那部分反编译没有出现!因为progard混淆会省略哪些不必要的代码,而标注出来的那写变量根本没有被使用过,所以就被删减了。
其他参考资源:
在Android Studio中的混淆debug与release
Android Studio混淆模板及常用第三方混淆(看了都说好)