apktool 转java_apk 反编译(使用apktool、dex2jar、jd-gui,进行反编译apk,查看apk源码)...

本文介绍了如何使用apktool、dex2jar和jd-gui工具对apk进行反编译,查看源码。首先,通过apktool反编译apk获取资源文件和AndroidManifest.xml;接着,利用dex2jar将classes.dex转换为jar文件,再用jd-gui打开查看Java源代码。最后,讲解了重新打包、签名和zipalign对齐的步骤,使反编译的apk可安装运行。
摘要由CSDN通过智能技术生成

使用到的工具

工具下载

67db8113b848

apktool下载 选择最新的版本

67db8113b848

dex2jar 选择最新的版本

67db8113b848

jd-gui

把压缩文件解压缩,并把所有的文件放到同一个文件夹下,得到的文件如图:我的文件为apktool.jar是因为我进行了重命名

67db8113b848

开始进行编译

1、把要进行反编译的apk文件拷贝到apktool所在的文件夹,使用 apktool 反编译 apk 得到图片资源、XML配置、语言资源等文件,

如果不需要修改资源文件(修改资源文件有坑,再次编译过程中有可能会报错),使用下面命令:

java -jar apktool_2.3.4.jar -r d xxx.apk -o xxx

//在cmd中进入到apktool.jar所在的目录,执行命令:

java -jar apktool.jar d -f app-debug.apk -o MMTS

67db8113b848

这个命令是启动 apktool.jar,并将当前目录下的 app-debug.apk 进行反编译,将反编译生成的文件存放在当前目录下新建的 MMTS 文件夹中,MMTS 这个文件夹的名字是可以随便取的。

67db8113b848

反编译得到的文件

打开MMTS里面就有反编译后生成的文件(执行过程中,没有出错就表示反编译成功)

67db8113b848

生成的文件和文件夹当中,我们关心的是 res 文件夹和 AndroidManifest.xml 文件,进入res文件:

67db8113b848

第二步:使用dex2jar反编译apk得到Java源代码

1、将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的)

2、将获取到的 classes.dex 放到之前解压出来的工具 dex2jar-2.0 文件夹内

3、进入到 dex2jar-2.0 文件夹中打开命令行,执行命令 d2j-dex2jar.bat classes.dex,执行结果如下图:

67db8113b848

没有报任何错误,这就说明我们已经转换成功了。现在观察dex2jar目录,你会发现多了一个文件,如下图所示:

67db8113b848

classes-dex2jar.jar这个文件就是我们借助工具之后成功转换出来的jar文件了。借助一下jd-gui这个工具来将jar文件转换成java代码。

使用jd-gui工具打开classes-dex2jar.jar这个文件,结果如下图所示:

67db8113b848

67db8113b848

就成,反编译成功

3、重新打包:

执行java -jar apktool_2.3.4.jar b Demo -o New_Demo.apk

67db8113b848

现在你会发现在同级目录下面生成了一个新的APK文件:

67db8113b848

但是这个文件还不能安装,因为还没有进行签名

有了签名文件之后在cmd中执行签名命令就可以进行签名了,命令格式如下:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名

其中jarsigner命令文件是存放在jdk的bin目录下的,需要将bin目录配置在系统的环境变量当中才可以在任何位置执行此命令。

签名之后的APK文件现在已经可以安装到手机上了,不过在此之前Android还极度建议我们对签名后的APK文件进行一次对齐操作,因为这样可以使得我们的程序在Android系统中运行得更快。对齐操作使用的是zipalign工具,该工具存放于/build-tools/目录下,将这个目录配置到系统环境变量当中就可以在任何位置执行此命令了。命令格式如下:

zipalign 4 New_Demo.apk New_Demo_aligned.apk

其中4是固定值不能改变,后面指定待对齐的APK文件名和对齐后的APK文件名。运行这段命令之后就会生成一个New_Demo_aligned.apk文件,然后就可以安装在手机上了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值