Apktool的简单使用

888 阅读1分钟

Apktool可以用于反编译apk和打包,学会使用它我们就可以直接对apk进行修改和重写打包. 下载地址:github.com/iBotPeaches…. image-20220105105318339 下载下来是一个jar文件,可以通过cmd来使用它.

使用步骤

1.1.打包测试app

image-20220105105512566

用AS创建一个默认app,将app打包生成apk

image-20220105105623597

image-20220105105656110

image-20220105105719886

按照步骤打包会在app目录下的release文件夹中生成一个apk文件.

1.2.反编译apk

获取到apk之后,我们就可以使用apktool进行反编译:

image-20220105110150118

反编译之后会在同目录下生成一个同名文件夹:

image-20220105110333829

这里面主要需要关心的是smail文件夹,res文件夹以及AndroidManifest.xml文件.smail文件夹中存的是源码生成的smail文件(由于Android app是运行在虚拟机上的,所以它也有自己的一套指令集,这套指令集就是smail).如果你足够熟悉smail语法,你也可以直接修改smail文件来实现修改app.

1.3.打包apk

修改完之后,就可以使用apktool直接打包.

image-20220105111807689

生成的apk可以用adb命令安装到手机上跑一跑

image-20220105111938107

image-20220105111950483

竟然报错了?这是什么原因呢?我们回忆一下第一步用AS创建测试app并打包的时候,是不是需要我们选择签名文件,问题就出在这里.我们没有给apktool生成的apk文件签名,自然不能安装到手机上了.我们可以使用jarsigner命令来给apk文件签名.

image-20220105112652307

签名之后就可以安装apk了

参考资料

  1. Android 反编译初探 应用是如何被注入广告的---鸿洋
  2. android打包编译, 签名与对齐
  3. Android逆向世界之一:smali文件