安卓逆向学习笔记(2)- 利用apktool反编译apk并进行二次打包

这篇文章将介绍一个apk反编译工具apktool。我们可以用apktool反编译apk,并且可以对反编译得到的文件重新打包生成新的apk。
本文使用的apktool版本为v2.0.0RC3,待反编译的apk为HelloWorld.apk。

我们的目标是反编译HelloWorld.apk,将apk显示的字符串“Hello world!”修改为“Hello Apktool!”。

下面具体介绍apktool的使用步骤:
(1) 先将apktool_200RC3.rar解压到某个具体的文件夹下;
(2) 将待反编译的HelloWorld.apk放在apktool_200RC3文件夹下;
(3) 然后在apktool_200RC3文件夹中打开命令提示符,输入以下命令 apktool d HelloWorld.apk
即可对apk进行反编译,如图1所示:

安卓逆向学习笔记(2)- 利用apktool反编译apk并进行二次打包_第1张图片

图1 输入命令反编译apk

待命令执行完毕后,会在当前目录下面生成一个HelloWorld文件夹。
(4) 我们找到\HelloWorld\res\values\string.xml这个文件,该文件存放着apk中的字符串资源。我们修改将hello_world字段的值改为“Hello Apktool!”。如图2所示:

安卓逆向学习笔记(2)- 利用apktool反编译apk并进行二次打包_第2张图片

图2 修改string.xml文件中的hello_world字段的值

(5) 在命令提示符中输入以下命令:apktool b HelloWorld 如图3 所示:

安卓逆向学习笔记(2)- 利用apktool反编译apk并进行二次打包_第3张图片
图3 输入命令重新打包生成apk
待命令执行完毕后,会在HelloWorld文件夹中生成一个dist文件夹,该文件夹下面就保存着二次打包生成的HelloWorld.apk。注意此时新生成的HelloWorld.apk没有进行签名,所以是无法安装和运行的。
(6) 下面使用签名工具Auto-sign对重新生成的HelloWorld.apk进行签名。具体步骤如下:
1. 将Auto-sign.rar解压到某个目录下,将HelloWorld.apk拷贝到Auto-sign文件夹中,并将其改名为update.zip
2. 双击执行批处理文件Sign.bat,待批处理文件执行完毕后,会在当前目录下面生成一个update_signed.zip文件,这个就是签名后生成的文件,我们将其改名为HelloWorld.apk即可。
(7) 安装并执行重新生成并且签名的HelloWorld.apk,可以看到运行结果如图4 所示:
安卓逆向学习笔记(2)- 利用apktool反编译apk并进行二次打包_第4张图片
图4 执行二次打包生成的apk所得到的结果
从图4 可以看出,原来显示的“Hello world!”字符串已经被我们修改成了“Hello Apktool!”,所以可见我们使用apktool反编译apk并二次打包生成apk的操作是成功的。
本文资源下载地址: 安卓逆向学习笔记(2)

你可能感兴趣的:(安卓逆向学习笔记)