详解Android的反编译和代码混淆-创新互联
前言
创新互联建站于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元赫山做网站,已为上家服务,为赫山各地企业和个人服务,联系电话:13518219792包括以下内容
- 要反编译apk需要下面3个工具
- 反编译资源文件
- 反编译类文件
- 代码混淆
要反编译apk需要下面3个工具
1、apktool(资源文件获取)
作用:资源文件获取,可以提取图片文件和布局文件进行使用查看
2、dex2jar(源文件获取)
作用:将APK反编译成java源码(classes.dex转化成jar文件)
3、jd-gui
作用:查看APK中classes.dex转化成的jar文件,即源码文件
下面进行反编译资源文件和类文件:
反编译资源文件
资源文件:包括图片资源、布局资源、动画、样式等其他资源
这样资源文件都可以看得到了。
反编译类文件
方式一:反编译得到Java类
1.下载并解压dex2jar-2.0,得到dex2jar-2.0文件夹,里面包含dex2jar.bat及其文件
2.将apk文件改为xx.zip文件,并解压得到classes.dex文件,并将其复制到dex2jar-2.0文件夹中
3
生成一个classes-dex2jar.jar文件,使用jd-gui.exe打开生成的classes-dex2jar.jar文件
方式二:直接使用smali2java工具
什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言。
代码混淆
只能混淆java类,不能混淆资源文件。系统定义的组件不能混淆。必须是导出的apk。
如何实现代码混淆
混淆类文件
修改module:app下的build.gradle
buildTypes { release { //是否需要混淆,默认false代表不混淆,true代表混淆 minifyEnabled true //混淆需要用到的一个工具:proguard,对应的一个文件是:proguard-android.txt(这个文件在android-sdk \tools\proguard目录下) //proguard是一个压缩、优化和混淆Java字节码文件的免费工具 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }
本文标题:详解Android的反编译和代码混淆-创新互联
网页路径:http://cdiso.cn/article/cdcjcs.html