Apk的反编译与回编译是通过什么途径实现的,遇到的问题会有哪些呢?今天小编就给大家总结一下。
我们分为三部分来讲。第一部分是AndroidKillrr 的环境配置;第二部分是apktool工具的使用与更新;第三部分是插件的更新方式。
1. AndroidKillrr 环境配置
1.Apk的含义:
apk属于什么文件?
广义上来说,"apk"属于压缩文件。
2.APK包中的"AndroidManifest.xml"文件是否可以通过直接解压的方式获取明文内容?如果不能的话需要通过什么工具进行解密呢?
2.这个文件是不能通过直接解压的方式来获取明文内容的,而是需要借助"AndroidKiller"工具进行解密。
"AndroidKiller"是一款经常用来反编译APK的工具。
第一步,下载好"AndroidKiller"工具
下载完成后,解压安装包,打开"AndroidKiller"(文件夹)进行安装
双击打开"AndroidKiller.exe"文件,发现出现了下面的弹窗:
弹窗提示:"没有Java SDK环境"
这个不会影响后面的操作,我们点击"OK"直接进入AndroidKiller 工具界面
然后选中"主页"菜单栏下的"配置"选项
弹出弹窗:点击"Java"图标配置JDK安装路径
点击编辑框右边的"文件夹"图标
找到之前安装JDK的目录,
依次选择"jdk.1.8.0_111"(文件夹)——选择"bin"文件夹,确定
这里需要了解AndroidKiller 工具里面的"Android"选项卡下的三个常用功能:
编译:就是将反编译后的文件重新打包成apk文件
插入代码管理器:将常用代码进行封装,方便逆向时快速添加smali代码
Apktool管理器:主要是用来管理和更新apktool工具
二.更新apktool工具
这里提到要更新apktool,那更新他有什么用呢?长期不更新的的话又会导致什么后果?
这里要着重讲一下这个apktool:第一步:下载完成后,点击"Android"选项,找到并打开apktool
出现弹窗:
这里,大家可以看到列表里已经存在一个工具了!
如果需要添加新的工具,就点击右侧"添加"按钮进行添加就可以了。
※ 在这里,填写的名称一定要有意义,格式一定是apktool_ 版本信息,目的是为方便之后选择对应的插件。
其后,是路径项,找到要添加的新版apktool的工具所在路径
第三个参数可以不填
完成之后点击"确定"
一定要在下方选择更新后的apktool,否则就相当于没有更新
三.更新插件
1.什么是插件?为什么使用插件呢""?
在逆向分析APP时,有时候需要插入smali代码打印日志信息或者记录方法调用流程或者添加弹窗、加载SO库,这些代码都是固定的,我们就会将他们封装成一个个插件来使用。
2.如何更新:
首先,将原有的插件进行删除。
打开"AndroidKiller"工具所在路径,找到"cfgs"文件夹
如果这个文件夹中有存放插件的"injectcode"文件夹,将此文件夹删除。
插件下载下来后,直接解压到androidKiller 工具目录下的"cfgs"文件夹里面
进行解压
解压之后又会出现一个新的"cnjectcode"文件夹,这个文件夹里存放的都是更细后的插件文件了。