android反编译

前几天玩一个小手游,就想看看能不能反编译一下apk我改改代码然后也体验一下伪土豪的感觉,就查资料学了学反编译,发现你要是光看框架代码还是挺方便的,闲言少叙,往下看
 命令行方式的反编译需要三个工具类,分别是

  1. apktool   jar包的作用是反编译拿到apk的资源文件,可以提取出来图片文件和布局文件
  2. dex2jar  zip压缩包的作用是将签名打包生成的.dex文件再给还原成.class文件(classes.dex还原成jar文件)
  3. jd-gui工具  将第二步生成的jar文件在这个工具中打开查看
一、使用工具的下载与安装

android反编译_第1张图片
就是这三个工具包,我给下载到我的百度网盘了,如果有人要的话可以留言或者直接加我qq问我要。

二、apk反编译步骤
(1) 使用 apktool 反编译 apk 得到图片、XML配置、语言资源等文件

1.将上述下载好的 3 个工具统一放到一个文件夹中(目录最好不好有中文),并解压 zip 文件,还是上面工具下载与安装那张图片,就把dex2jar-2.0.zip和jd-gui-windows-1.4.0.zip这俩压缩包给解压了就好哪个apktool-2.3.4.jar是可以直接用的,不用管,
2.打开 cmd/终端,进入上述工具目录android反编译_第2张图片3.运行apktool_2.3.4.jar这个jar文件来将 apk文件进行反编译,在java中,运行可执行jar包的命令是:java -jar apktool_2.3.4.jar d -f apk文件绝对路径 -o 输出的目录android反编译_第3张图片这个命令是启动 apktool_2.3.4.jar 将apk 文件执行反编译,然后将反编译生成的文件存放到 apk 文件同级的 source 目录下,然后你就能在D盘的discovercode文件夹中看到source文件夹,以上就是使用 apktool 这个工具将一个 apk 反编译得到图片、XML配置、语言资源等文件的过程

(2) 使用 dex2jar 反编译 apk 得到 Jar 包

将要反编译的 APK 后缀名改为 .rar 或者 .zip,并解压,得到其中的classes.dex 文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,如下图所示:
android反编译_第4张图片在命令行下进入到 dex2jar.bat 所在目录,输入"d2j-dex2jar classes.dex",截图:
android反编译_第5张图片命令执行完成之后,在当前目录下就可以看到生成的Jar文件了,如下图所示:
android反编译_第6张图片反编译 classes.dex 得到 classes-dex2jar.jar 文件之后,就可以使用【jd-gui】工具将 class 文件反编译成 java 源代码了

(3) 使用 jd-gui.exe 工具将 class 文件反编译成 java 源代码

1.打开 jd-gui.exe 程序(不需要安装,之前 zip 包解压即可),我是1.8的java环境,直接点击会报错,
android反编译_第7张图片但是我们也不能单单为了它就把java的jdk给降低到1.7,这里有个方法,首先找到该文件所在文件夹,按住Shift键,在文件夹空白处点击鼠标右键,点击“在此处打开命令窗口”,然后输入java -jar 要打开的文件名(包括后缀名),然后回车即可打开文件,该方法同样适用打开.exe和一些其他的文件。
android反编译_第8张图片 3.选择 class 文件就可以看到 java 源代码:
android反编译_第9张图片代码就主要在com包里,但是很显然做混淆了,不过慢慢看还是能理一理某些代码逻辑的,这里从侧面我们也能看出来,打包发布应用市场的时候,做混淆和加固是多么重要,这是我转载的混淆方式http://blog.csdn.net/vipzjyno1/article/details/21042823

你可能感兴趣的:(android)