反编译工具的使用

apktool

作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

dex2ja

作用:将apk反编译成Java源码(classes.dex转化成jar文件)

jd-gui

作用:查看APK中classes.dex转化成出的jar文件,即源码文件

===============================================================

apktool的使用

(1)下载Apktool工具
https://ibotpeaches.github.io/Apktool/
工具的使用标准请根据官网来。

(2)目的:拿到资源文件

(3)cmd常用命令:
写本章时,apktool最新版本为2.3.4,使用方法官网上也给了出来


图片.png

假设我们将要反编译的安装包名称是test
apktool d test.apk:反编译文件test.apk,输出文件夹是test(文件名)
apktool b test:指定输出文件夹test,将输出文件夹重新编译成apk

以上是官方给出的命令, 实际上我们本地的apktool.jar这个文件并不一定是默认的可执行文件。


图片.png

如果系统默认认为jar不是可执行文件, 那么没关系:
方法一:(利用java工具执行jar包)

直接在控制台输入:

java -jar "D:\1\apktool\\apktool.jar" d test.apk

执行效果如下:


图片.png

方法二:(配置批处理文件)
批处理文件(.bat)是window系统默认的可运行文件,所以我们可以配置批处理文件来简化命令。

@echo off  //让下方的多条命令不会显示在控制台
set PATH=%CD%;%PATH%;//配置当前控制台的临时环境变量
java -jar "%~dp0apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9//执行命令

注意:%CD%和%~dp0都是获取当前路径,区别是前者路径末尾没有“\”,后者有。

配置文件名为apktool.bat(名称任意), 将文件放在和apktool.jar一个目录下。


图片.png

切换到当前目录:

cd D:\1\apktool

执行批处理文件:

apktool d test.apk

输出文件目录结构如下:

图片.png

两种方法的本质其实都是执行apktool.jar文件来反编译test.apk。

将输出文件重新生成apk

apktool b test

输出文件目录结构如下:


图片.png

图片.png

重新生成的apk无法安装,原因是重新生成的包是没有签名的, 需要对该包重新签名即可安装。

dex2ja

(1)下载dex2ja工具
https://sourceforge.net/projects/dex2jar/

(2)目的:将dex文件转成jar文件

(3)操作
将apk格式改成rar, 解压


图片.png

执行命令:

d2j-dex2jar.bat [classes.dex文件]

生成结果是一个jar包(备用)


图片.png

jd-gui

(1)下载jd-gui工具

http://jd.benow.ca/jd-eclipse/update/#jd-gui-download

(2)打开软件,打开第二步生成的classes-dex2jar.jar文件,查看代码

图片.png

你可能感兴趣的:(反编译工具的使用)