APK反编译工具及方法

一、下载工具

apktool

apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看。
点击下载apktool

在这里插入图片描述

dex2jar

dex2jar:将apk反编译成java源码(classes.dex转化成jar文件)。
点击连接下载dex2jar
在这里插入图片描述

jd-gui

查看APK中classes.dex转化成出的jar文件,即源码文件。
在这里插入图片描述
下载完成后3个工具包放在同一个文件夹内,解压缩jd-gui-windows-1.3.0.zipdex2jar-2.0.zip
在这里插入图片描述

二、APK反编译方法

方法一:Apktool

反编译APK获取资源文件(源代码、图片、XML配置、语言资源)。

# cmd进入apktool所在的文件夹
# cd apktool所在的位置

C:\Users>cd D:\Android反编译工具包
C:\Users>d:

# 执行java -jar apktool_2.0.1.jar d -f D:\Android反编译工具包\反编译apk文件名.apk -o 存放文件夹名(同目录下,自己备注文件夹名)
D:\Android反编译工具包>java -jar apktool_2.0.1.jar d -f D:\Android反编译工具包\反编译apk文件名 -o 农商银行

I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\Gaoyu\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...

结束后生成所建立的文件夹。
在这里插入图片描述
在这里插入图片描述

生成的文件夹中包含res、xml文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

方法二:dex2jar + jd-gui

反编译APK得到Java源代码

将要反编译的apk后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件,将获取到的classes.dex放到解压后的工具dex2jar-2.0文件夹内。
在这里插入图片描述

进入到dex2jar - 2.0文件夹内,执行以下命令,得到classes-dex2jar.jar:

D:\Android反编译工具包>cd D:\Android反编译工具包\dex2jar-2.0
D:\Android反编译工具包\dex2jar-2.0>d2j-dex2jar classes.dex

dex2jar classes.dex -> .\classes-dex2jar.jar
Detail Error Information in File .\classes-error.zip
Please report this file to http://code.google.com/p/dex2jar/issues/entry if possible.

在这里插入图片描述

  • 使用jd-gui工具查看class文件反编译成java的源代码。

启动jd-gui-windows-1.6.6文件夹内的.exe文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、APK文件的基本结构

  • META—INF文件夹:存放应用程序的签名信息,用来保证APK包的完整性;res文件夹存储资源文件,包括图片、字符串、UI布局文件等;
  • AndroidManifest.xml是应用程序的配置文件,其中声明了应用程序的包名、SDK版本、权限、组件等信息;
  • classes.dex则是java字节码文件,可运行于Android虚拟机Dalvik上。

在这里插入图片描述

本文参考连接为,详细请点击此链接进行学习

本文仅为学习笔记,若有侵权行为,请联系立即删除。

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值