apk反编译

工具简介

APK反编译的工具网上有很多,我先是用了一个叫apkdb的,虽然简单,但不好用,所以就改用下边这套工具了:

apktool 作用:可以查看图片和布局等资源文件;
dex2jar 作用:将apk中classes.dex文件转化成 jar文件;
jd-gui 作用:查看由APK中classes.dex转化出的jar文件,即源码文件;

工具使用前提

必须已经安装了JDK;

使用方法
  • apktool的使用:
    进入CMD命令界面,cd到[图片上传中...(QQ截图20180531201838.png-1f81d0-1527772876802-0)]
    apktool工具所在目录,并输入:java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反编译工具包\测试apk\MMTS-release-1.0.2.apk -o MMTS
    命令说明:这个命令是启动apktool_2.0.1.jar将位于【E:\AndroidDevelopTool\Android反编译工具包\测试apk\】目录下的"MMTS-release-1.0.2.apk"这个apk反编译,然后将反编译生成的文件存放到当前目录(apktool_2.0.1.jar所在的目录,也就是"E:\AndroidDevelopTool\Android反编译工具包"目录)下的一个【MMTS】文件夹中。打开MMTS文件夹,就可以看到反编译后的生成的文件了。
apk反编译_第1张图片
apktool的使用图.png


  • dex2jar的使用:
    1.将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的);
    2.将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内;
    3.在cmd命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex";
    4.在dex2jar.bat同级目录中,会生成.jar文件;
apk反编译_第2张图片
dex2jar使用结果图.png


  • jd-gui反编译.class文件,得到java源代码:
    1.运行jd-gui.exe文件;
    2.将生成的.jar文件拖拽到jd-gui的主界面;

    注意:运行jd-gui.exe时,可能会报错This application requires a Java Runtime Environment 1.7.0,此时若是你已经安装了jdk,并且也配好了环境,那么您是否是先安装的jdk,之后又重新安装了电脑系统呢?这就会导致注册表中没有java的相关信息,而有些程序是直接通过读取注册表判断 java 版本及相关信息的,所以对于这样的情况,解决方法有3种:

    1. 重新动安装一遍JDK;
    2. 直接使用现有的java工具打开.exe程序: 在cmd命令行下定位到jd-gui.exe所在目录(或按住Shift键,右击空白处,点选”在此处打开命令窗口”, ),并执行java -jar jd-gui.exe(文件名,含后缀) ;
    3. 手动增加注册表信息,一劳永逸 :win + r, 输入regedit,然后新建相关项,并新建相应字符串值,如下:
      项:[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
      字符串值:"CurrentVersion"="1.8"
      项:[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8]
      字符串值:"JavaHome"="D:\Java\jdk1.8.0_64\jre"
apk反编译_第3张图片
注册表配置.png

     最后正常运行jd-gui.exe文件,并导入.jar文件即可;

apk反编译_第4张图片
jd-gui反编译结果图.png
  • 反编译使用总结:dex2jar、jd-gui都需要解压后使用,apktool、dex2jar需要借用cmd窗口使用,jd-gui可直接运行(注册表中已注册),也可以借用cmd窗口通过java启动使用;

相关网址推荐:https://blog.csdn.net/s13383754499/article/details/78914592

你可能感兴趣的:(apk反编译)