安卓反编译详细步骤

准备工具

apktool 

github地址:https://github.com/iBotPeaches/Apktool

dex-tool

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

jd-gui

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

实现步骤

1、使用 apktool 反编译 apk

将 apk 安装包和下载的 apktool 放在同一目录。
假如我的安装包叫 base.apk ,我想把它反编译到 test 文件夹下,反编译命令如下:

java -jar apktool_2.9.1.jar d base.apk -o test

说明:
与 jadx 不同,apktool 反编译 apk 后,你在反编译后的 AndroidManifest.xml 里是找不到 versionCode 内部版本号 和 versionName 版本名称 的,因为 apktool 把它放到了 apktool.yml 文件里,如果你要修改 versionCode 、versionName ,可以在 apktool.yml 文件里修改。

编译为apk
假如你修改了 test 文件夹里的代码 或者 修改了 versionCode 、versionName 等其他内容,可用下面的命令将 test 文件夹编译为 apk 。

java -jar apktool_2.9.1.jar b test -o test.apk

该命令将 test 文件夹编译为 test.apk 。

到这里你已经得到了一个修改后的 apk,但是这个编译后的 apk 还无法安装到手机上,因为修改了文件,在安装时手机会对安装包里的签名进行比对签名,如果签名对不上说明apk被篡改了,就不会进行安装。

所以,如果现在要对修改后的 apk 重新进行签名,才能安装。

关于 apk 签名的具体细节说明,可参考这篇文章:Android apk之v1、v2、v3签名

2、dex2jar,对dex转为jar包

1、修改apk后缀为zip

2、解压zip

3、获取解压后的classes.dex文件,大部分apk存在多个dex文件

apk 安装包本质是经过特殊处理的压缩包,可以直接将 target.apk 修改后缀名为 target.zip,然后通过解压工具解压,解压后的文件夹包含各种资源文件和文件夹,以及 dex 文件,如果apk是多个 dex 文件组成,解压后会有多个dex 存在,可逐个操作。

3、对目标DEX进行操作

1、打开cmd,定位到dex-tool的文件夹下

我们需要使用的是以下批处理文件

2、执行以下代码,将dex转化为jar包

d2j-dex2jar.bat classes.dex

4、使用jd-gui查看jar源码

打开

将3得到的jar包拖入即可查看源码

参考链接


链接:https://blog.youkuaiyun.com/qq_33697094/article/details/135225275

链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值