Apk的反编译与回编译是通过什么途径实现的,遇到的问题会有哪些呢?今天小编就给大家总结一下。

我们分为三部分来讲。第一部分是AndroidKillrr 的环境配置;第二部分是apktool工具的使用与更新;第三部分是插件的更新方式。

1. AndroidKillrr 环境配置

1.Apk的含义:

apk属于什么文件?

广义上来说,"apk"属于压缩文件。

2.APK包中的"AndroidManifest.xml"文件是否可以通过直接解压的方式获取明文内容?如果不能的话需要通过什么工具进行解密呢?

2.这个文件是不能通过直接解压的方式来获取明文内容的,而是需要借助"AndroidKiller"工具进行解密。

"AndroidKiller"是一款经常用来反编译APK的工具。

第一步,下载好"AndroidKiller"工具

下载完成后,解压安装包,打开"AndroidKiller"(文件夹)进行安装

反编译apk(安卓逆向之APK的反编译与回编译)(1)

双击打开"AndroidKiller.exe"文件,发现出现了下面的弹窗:

反编译apk(安卓逆向之APK的反编译与回编译)(2)

弹窗提示:"没有Java SDK环境"

这个不会影响后面的操作,我们点击"OK"直接进入AndroidKiller 工具界面

然后选中"主页"菜单栏下的"配置"选项

弹出弹窗:点击"Java"图标配置JDK安装路径

反编译apk(安卓逆向之APK的反编译与回编译)(3)

点击编辑框右边的"文件夹"图标

反编译apk(安卓逆向之APK的反编译与回编译)(4)

找到之前安装JDK的目录,

反编译apk(安卓逆向之APK的反编译与回编译)(5)

依次选择"jdk.1.8.0_111"(文件夹)——选择"bin"文件夹,确定

反编译apk(安卓逆向之APK的反编译与回编译)(6)

这里需要了解AndroidKiller 工具里面的"Android"选项卡下的三个常用功能:

编译:就是将反编译后的文件重新打包成apk文件

插入代码管理器:将常用代码进行封装,方便逆向时快速添加smali代码

Apktool管理器:主要是用来管理和更新apktool工具

二.更新apktool工具

这里提到要更新apktool,那更新他有什么用呢?长期不更新的的话又会导致什么后果?

反编译apk(安卓逆向之APK的反编译与回编译)(7)

这里要着重讲一下这个apktool:第一步:下载完成后,点击"Android"选项,找到并打开apktool

出现弹窗:

反编译apk(安卓逆向之APK的反编译与回编译)(8)

这里,大家可以看到列表里已经存在一个工具了!

如果需要添加新的工具,就点击右侧"添加"按钮进行添加就可以了。

反编译apk(安卓逆向之APK的反编译与回编译)(9)

※ 在这里,填写的名称一定要有意义,格式一定是apktool_ 版本信息,目的是为方便之后选择对应的插件。

其后,是路径项,找到要添加的新版apktool的工具所在路径

反编译apk(安卓逆向之APK的反编译与回编译)(10)

第三个参数可以不填

反编译apk(安卓逆向之APK的反编译与回编译)(11)

完成之后点击"确定"

一定要在下方选择更新后的apktool,否则就相当于没有更新

反编译apk(安卓逆向之APK的反编译与回编译)(12)

三.更新插件

1.什么是插件?为什么使用插件呢""?

在逆向分析APP时,有时候需要插入smali代码打印日志信息或者记录方法调用流程或者添加弹窗、加载SO库,这些代码都是固定的,我们就会将他们封装成一个个插件来使用。

2.如何更新:

首先,将原有的插件进行删除。

打开"AndroidKiller"工具所在路径,找到"cfgs"文件夹

反编译apk(安卓逆向之APK的反编译与回编译)(13)

如果这个文件夹中有存放插件的"injectcode"文件夹,将此文件夹删除。

插件下载下来后,直接解压到androidKiller 工具目录下的"cfgs"文件夹里面

进行解压

解压之后又会出现一个新的"cnjectcode"文件夹,这个文件夹里存放的都是更细后的插件文件了。