反编译apk文件
一、Apktool1、l安装ApkTool工具,该工具可以解码得到资源文件,但不能得到Java源文件。 安装环境:需要安装JRE1.6
|
二、Dex2Jar 2、Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具Dex2Jar, 该工具可以把dex文件转换成jar文件。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件 1> 把APK安装包中的classes.dex解压到某个目录下,如:c:\soft 2> 在DOS窗口下进入dex2jar.bat所在目录,执行DOS命令:dex2jar.bat c:\soft\source\classes.dex c:\soft\source,命令生成classes.dex.dex2jar.jar文件。 |
三、jd-gui 3、安装jd-gui工具,该工具可以把jar文件反编译成Java源文件 运行该软件,直接打开classes.dex.dex2jar.jar文件即可看到java源代码。 |
小结: 1、apktool https://code.google.com/p/android-apktool/downloads/list a)下载:apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2 b)解压这两个文件,将解压出来的拷贝到一个文件夹 c)命令格式:apktool d [opts] <file.apk> [dir] 中的d代表解码,[opts]代表选项,-s选项代表不解码源文件。 如果不使用该命令,那么清单文件AndroidManifest.xml和布局文件phone_ui.xml都是乱码 cmd> apktool d -s phone.apk ./phone d)就可以将资源文件提取出来了,不会乱码了。 2、Dex2Jar 将用apktool提取出来的资源文件中的classes.dex,将classes.dex转换成classes_dex2jar.jar文件 https://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip cmd>dex2jar classes.dex 然后生成一个classes_dex2jar.jar的文件 3、jd-gui 再将用Dex2Jar转换的classes_dex2jar.jar文件拖拽到jd-gui,就可以将java源文件显示出来了 |
反编译总结: apktool1.4.1.tar.bz2 反编译工具的jar包 apktool-install-windows-r04-brut1.tar.bz2 windows下调用执行jar 的exe文件 1、 解压这两个文件,将apktool1.4.1中的apktool.jar拷贝到apktool-install-windows-r04-brut1目录下,此时文件有: 红色的为待反编译的apk文件 cmd切换到该目录,执行: > apktool d -s queryNumber.apk ./source 在当前目录生成source目录,下面放着资源文件 2、解压dex2jar-0.0.7.11-SNAPSHOT.zip将classes.dex拷贝该目录,执行: > dex2jar class.dex 生成classes_dex2jar.jar文件 里面全是.class文件 3、打开jd-gui.exe,将classes_dex2jar.jar拖拽到jd-gui界面 此时可以看到所有的源文件: |