Android反编译与防止反编译

来源:互联网 发布:我的世界联机作弊器js 编辑:程序博客网 时间:2024/04/19 23:08

1、Android反编译
1)下载两个工具 dex2jar,jar2java
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来实现代码混淆,拷一个proguard.cfg文件放在项目中,再在project.properties中加入proguard.config=来proguard.cfg配置,非常不方便。而2.3以后,Google已经将这个工具加入到了SDK的工具集里。具体路径:SDK oolsproguard。
当创建一个新的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)导出Apk


3、对比
未使用Proguard,反编译的结果
Android反编译与防止反编译

 使用Proguard后,反编译的结果

Android反编译与防止反编译


project.properties中加入 android.library=false 可以避免使用外部jar文件的时候出错。

proguard-project.txt中加入 -ignorewarnings 提高容错



 

0 0
原创粉丝点击