Android Killer是一款可以对APK进行反编译的工具,它能够对反编译后的Smali文件进行修改,并将修改后的文件进行打包
apktool、dex2jar、jd-gui的集合体
(注意:androidKiller版本可能太旧,导致反编译失败,需要下载版本更新补丁包或及时更新工具版本)
jdk1.8.0 + 已加补丁整合包下载路径
链接:https://pan.baidu.com/s/1oIigQ5QEUnJag-AB0EE4dg
提取码:59lw
- “AndroidKiller”的文件夹目录结构,如图1.1所示,双击打开“AndroidKiller.exe”文件,此时,会弹出一个窗口,提示没有Java SDK环境,直接点击OK进入AndroidKiller工具界面。
选中“主页”菜单栏下的“配置”,选项点击“Java”图标配置JDK安装路径。点击编辑框右边的“文件夹”图标,找到之前安装的JDK目录,选择自己安装的jdk文件夹下的“bin”目录(找“bin”目录下的Java.exe文件),点击确定按钮
将需要反编译的 apk 拖进 AndroidKiller 里,进行反编译(通过apk-tool、dex2jar)
当出现 APK 所有反编译工作全部完成!!!时,说明反编译成功
以一款计算机app为例
点开工程管理器,便会呈现apk的目录结构
对比得出以下结论:
无 meta-INF 文件:对apk的反编译过程中,对apk的整体性造成破坏,apk的签名没有存在意义,所以在反编译时被处理掉
AndroidManifest.xml 文件转换为 values 文件:AndroidManifest.xml 的反编译结果存放在了values开头的文件夹中,(对字符操作时,如汉化,需要修改values文件)
classses.dex 文件反编译为 smali 代码文件
当点开文件会出现smali代码,点击上方Javalogo,会呈现Java源码(通过 jd-gui)
当对反编译的文件做完操作后,重编译、签名打包成apk,点击上方”Android“后,点击左上角“编译“
当出现APK 所有编译工作全部完成!!!(包括编译与重签名) ,说明反编译成功
- 打开Android虚拟机或外挂Android手机或模拟器,点击AndroidKiller上方的”Android“,点击上方”刷新“,选中你的设备,这样电脑就和手机设备连接了( 通过adb ,注意统一adb版本)
(如果是真机,则需要打开开发者模式,打开USB调试功能)
AndroidKiller通过 adb 与手机设备连接
统一 adb 版本(版本不一样可能会造成冲突)
点击安装,就能将程序安装到手机设备中
点击卸载,就能卸载(doge)
注意:重打包的软件不能和原来的在手机设备上共存(签名不一致,无法覆盖安装)
- 作用
- 用于反编译Android apk,可以将应用中的资源提取出来,也可以在修改资源文件后重新打包。smali 调试主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)
java -jar .apktool的名字 d(反编译) .要解包的apk -o(输出) 文件名
重新打包
java -jar .apktool的名字 b(打包) .要打包的文件夹名字
重新打包后的apk在要打包的文件夹里的dist目录下
Android 中的一个反编译工具,它可以将 Android 程序安装包 Apk 文件中的 .dex 文件反编译成一个 .jar 文件,也可以将反编译后的 .jar 文件重新编译成 .dex 文件。
- 安装
将下载的 dex2jar-2.0.zip 压缩文件直接解压到任意文件夹下。
将 dex2jar-2.0 文件夹的路径配置到 PATH 环境变量中去。
在命令行窗口输入 d2j-dex2jar 命令按回车键dex2jar 反编译
- 将 Android Apk 文件后缀名 .apk 改成 .zip 文件并解压,获取到它的 .dex 文件(解压后有可能有多个 dex 文件),dex2jar 主要对 classes.dex 文件反编译。
输入dex2jar 反编译命令
第一种方法
d2j-dex2jar < dexFilePath > -o < outputJarFilePath >
dexFilePath: 要反编译的 .dex 文件的文件路径。
outputJarFilePath: 反编译后输出的 .jar 文件的文件路径。
第二种方法
将需要反编译的dex文件(这里是classes.dex)复制到 dex2jar 解压目录下。
打开命令行进入 d2j-dex2jar.bat 文件所在目录,输入命令 .d2j-dex2jar.bat classes.dex 。(.当前目录 …上一级目录)
dex2jar 重编译命令:d2j-jar2dex < jarFilePath > -o < outputDexFilePath >
jarFilePath: 要重新编译的 .jar 文件的文件路径。
outputDexFilePath: 重编译后输出的 .dex 文件的文件路径。
将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。
在java开发里,源代码是.java文件,然后经过编译后生成计算机识别的.class文件,但是.class文件是计算机识别的我们一般看不明白,因此需要反编译变成我们能读懂的源码
- JD-GUI 是一个用 C++ 开发的 Java 反编译工具
双击运行 jd-gui.exe 文件,将jar文件拖到工作区即可打开。



