APK反编译(dex2jar,jd-gui)
今天,人家让我反编译一个apk。结果弄了好半天,才弄好。一直都是无法找到命令,原来是犯了低级错误。今天,记录一下。
一、准备工具
- dex2jar 将apk中的dex(字节码文件),转为jar包(java代码)
- jd-gui 解压jar包,查看里面的java代码工具
下载链接:
其实还有一个apktoolg工具,这个主要是查看apk中res文件夹下的文件,将资源文件解码
最后奉上我的百度网盘:https://pan.baidu.com/s/1f7_apApzcTE7feeBsEHMSw 提取码:5tr2
二、反编译步骤
注意:这里主要是查看apk的源码,没有用apktool工具来解码资源文件。
-
下载安装
dex2jar
、jd-gui
-
解压下载的
dex2jar
和jd-gui
压缩文件(我下载的是zip压缩文件)
-
-
上面的工具下载好之后,准备好你的apk文件(如:some.apk),然后进行如下操作:
-
解压apk文件(直接使用rar、zip等解压工具,解压即可)。解压的文件里面包含:classes.dex,Manifest.xml等文件。
-
复制classes.dex文件,放到dex2jar的解压文件夹中(这个文件夹随意,只要是dex2jar解压的即可)。
-
打开命令行窗口
shift + 右键
找到poershell
或者cmd
。当前所在路径为:dex2jar解压后的文件夹下。输入命令d2j-dex2jar.bat classes.dex
就会出现对应的classes.jar了。也就成功了。这里有一个坑,就是输入上面的命令,报错:d2j-dex2jar.bat找不到该命令。你要使用这个命令:./d2j-dex2jar.bat classes.dex 命令的前面需要使用路径,否则就加上环境变量(我想的,没试过) -
将classes.jar拖到jd-gui中,就可以看到源码了。如果没有被混淆的话,那就可以畅快的阅读源码了。如果被混淆了,那不可惜了,只有a,b,c等着你。。。
-
整个下来很简单。主要是上面的 d2j-dex2jar.bat 这个命令无法找到的错误,倒腾半天就很无语。
三、解压遇到的问题:
....com.googlecode....Dex2Jar 具体什么错误,就忘记了。
如果遇到这个问题,似乎是里面不干净了。把dex2jar删掉,重新解压一遍就好了。