前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

作者头像
韩曙亮
发布2023-03-28 18:51:00
2.6K0
发布2023-03-28 18:51:00
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

学习 Android 安全 , 首先要了解常用的破解 Android 应用的方式 , 本篇博客中简单介绍了破解 Android 应用的

5

种常用工具 , apktool , dex2jar , enjarify , jd-gui , jadx ;

整理后的

5

种反编译工具 : https://download.csdn.net/download/han1202012/13097008 , 该链接只用于记录 , 博客中有官方网站的下载地址 , 可以一一下载 ;

在这里插入图片描述
在这里插入图片描述

一、apktool


1、apktool 简介

官网地址 : https://ibotpeaches.github.io/Apktool/

文档地址 : https://ibotpeaches.github.io/Apktool/documentation/

当前最新版本是 2.4.1 ;

apktool 常用于反编译 Android 中的资源文件 , 主要是 获取 AndroidManifest.xml , res 目录下的图片 , 布局 , style 风格配置 , 等 资源文件 ;

Android 应用打包时 , 会使用 aapt 对工程中的资源文件进行编译 , 一般情况下将 apk 打开以后 , 都是编译后的资源文件 , 这些文件基本不可读 , 无法理解 ;

apktool 工具可以将 Android 项目中编译后的 资源文件反编译 出来 ;

反编译命令 :

代码语言:javascript
复制
java -jar apktool_2.4.1.jar d demo.apk -o demo

重新打包命令 :

代码语言:javascript
复制
java -jar apktool_2.4.1.jar b demo -o demo_repackage.apk

2、直接解压

将 apk 直接解压 ,

在这里插入图片描述
在这里插入图片描述

查看其中的 AndroidManifest.xml 文件 , 是无规则的乱码 , 这是被 aapt 编译后的资源文件 , 无法查看 ;

在这里插入图片描述
在这里插入图片描述

3、使用 apktool 反编译

执行 java -jar apktool_2.4.1.jar d demo.apk -o demo 命令 ,

代码语言:javascript
复制
java -jar apktool_2.4.1.jar d demo.apk -o demo

其中 d 后面是 要反编译的 apk 文件 ,

-o demo 的含义是 将反编译结果输出到 demo 目录中 ;

反编译过程 :

在这里插入图片描述
在这里插入图片描述

查看其中的 AndroidManifest.xml 文件 , 可以看到真实的文件内容 ;

在这里插入图片描述
在这里插入图片描述

4、使用 apktool 重新打包

将反编译后的文件 重新打包 ;

代码语言:javascript
复制
java -jar apktool_2.4.1.jar b demo -o demo_repackage.apk

b demo 是指定 要打包 demo 目录 ;

-o demo_repackage.apk 是指定新打包的 应用安装文件是 demo_repackage.apk ;

重新打包过程 :

在这里插入图片描述
在这里插入图片描述

二、dex2jar


1、dex2jar 简介

官方网站 : https://sourceforge.net/projects/dex2jar/

GitHub 地址 : https://github.com/pxb1988/dex2jar

下载地址 : https://sourceforge.net/projects/dex2jar/files/

dex2jar 的作用是 将 dex 文件反编译成 jar 文件 ;

在 Android 反编译中就是将 classes.dex 反编译成 jar 文件 ;

2、dex2jar 反编译命令

反编译命令 : demo.apk 是指定要反编译的 apk 文件 , -o demo.jar 指定要输出的 jar 文件路径 ;

代码语言:javascript
复制
d2j-dex2jar.bat demo.apk -o demo.jar

反编译结果 : 在目录中生成了 demo.jar 文件 ;

在这里插入图片描述
在这里插入图片描述

三、enjarify


1、enjarify 简介

GitHub 地址 : https://github.com/google/enjarify

下载地址 : https://github.com/google/enjarify/releases

enjarify 主要作用是 将 apk 文件反编译成 Java 源码 ;

enjarify 工具与 dex2jar 工具作用类似 ;

2、enjarify 命令

反编译命令 : demo.apk 是指定要反编译的 apk 文件 , -o demo.jar 指定要输出的 jar 文件路径 ;

代码语言:javascript
复制
enjarify demo.apk -o demo.jar

四、jd-gui


官方地址 : http://java-decompiler.github.io

GitHub 地址 : https://github.com/java-decompiler/jd-gui

下载地址 : https://github.com/java-decompiler/jd-gui/releases

jd-gui 的作用是 查看 jar 包中的文件源码 , 将 jar 文件拖入到该工具的窗口界面即可 ;

在这里插入图片描述
在这里插入图片描述

将 jar 文件拖到窗口中 , 即可查看反编译出的 jar 文件源码 ;

在这里插入图片描述
在这里插入图片描述

五、jadx


GitHub 地址 : https://github.com/skylot/jadx/

下载地址 : https://github.com/skylot/jadx/releases/tag/v1.1.0

使用该工具 , 可以直接查看 资源 与 代码 ;

直接双击 jadx-1.1.0\bin 目录下的 jadx-gui.bat 文件 , 然后 选择路径 打开指定的 apk 文件 ,

在这里插入图片描述
在这里插入图片描述

即可查看该 apk 的源代码与资源文件 ;

在这里插入图片描述
在这里插入图片描述

该工具完成了上述

4

个工具的所有工作 , 但是阅读代码时 , 无法进行代码跳转 , 这就比较纠结了 , 在阅读代码方面不如 jd-gui 好用 ;

如果只是简单了解一下项目结构 , 或者获取资源 , 可以使用该反编译工具 ;

整理后的

5

种反编译工具 : https://download.csdn.net/download/han1202012/13097008 , 该链接只用于记录 , 博客中有官方网站的下载地址 , 可以一一下载 ;

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、apktool
    • 1、apktool 简介
      • 2、直接解压
        • 3、使用 apktool 反编译
          • 4、使用 apktool 重新打包
          • 二、dex2jar
            • 1、dex2jar 简介
              • 2、dex2jar 反编译命令
              • 三、enjarify
                • 1、enjarify 简介
                  • 2、enjarify 命令
                  • 四、jd-gui
                  • 五、jadx
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档