apk反编译

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工具来解码资源文件。

  • 下载安装dex2jarjd-gui

    • 解压下载的dex2jarjd-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删掉,重新解压一遍就好了。

原文地址:https://www.cnblogs.com/wisdomzhang/p/13308550.html