详解Android的反编译和代码混淆-创新互联

前言

创新互联建站于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元赫山做网站,已为上家服务,为赫山各地企业和个人服务,联系电话:13518219792

包括以下内容

  1. 要反编译apk需要下面3个工具
  2. 反编译资源文件
  3. 反编译类文件
  4. 代码混淆

要反编译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://scyanting.com/article/cdcjcs.html