• Android 反编译apk


    工具介绍:

        apktool  

             作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

         下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

      dex2jar

             作用:将apk反编译成java源码(classes.dex转化成jar文件)
         下载地址:http://sourceforge.net/projects/dex2jar/files/

      jd-gui

             作用:查看APK中classes.dex转化成出的jar文件,即源码文件
         下载地址:http://jd.benow.ca/

    下载完成后如图:

    如果上面的文件没有下载成功就自己在其他地方下载,网上搜索下还是很多的,只是注意下比较新的版本就好了哈(版本太旧会导致反编译失败),这里可以将这三个一起下载----> CSDN下载(PS:没有积分的可以直接问我要文件,我也不知道为什么一传上去就默认要5分了)

    将【dex2jar-2.0.zip】和【jd-gui-windows-1.4.0.zip】分别解压到当前文件夹,接下来开始使用

    1、使用apktool反编译apk得到资源文件

    使用cmd将目录切换到当前文件夹的目录下,然后输入

    java -jar 【apktool的jar包名称】 d -f  【要反编译的apk路径】  -o 【反编译后保存的文件名】

    需要注意如果出现”Input file was not found or was not readable"的问题,

    是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f <apkPath> -o <folderPath>

    然后目录下生成了对应文件夹,打开里面就是apk的资源文件

    2、使用dex2jar反编译apk得到Java源代码

     将要反编译的APK后缀名改为.rar或者 .zip,然后解压,得到classes.dex文件(它就是java文件编译再通过dx工具打包而成的)

    将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内:

     在命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:

     在这里的执行过程中如果没报错,那么就表示已经反编译成功了

     命令执行完成之后,在当前目录下就可以看到生成的Jar文件:


    反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了

     

      使用jd-gui打开classes-dex2jar.jar就可以看到源代码了,如下图所示:

      

      JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

      

    到这里就OK了,反编译成功。

    需要注意的是

    出现这个提示时说明你的jdk在1.8或以上,jd-gui只支持到1.7版本,你可以换成用Procyon-Decompiler或其他

      

  • 相关阅读:
    SQLServer2008新建链接服务器for Oracle
    提示Can't load package:dclite70.bpl解决方法
    android实现自动升级并安装打开
    【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码
    Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件
    Linux 自定义命令
    CentOS时间的查看与修改
    Linux expect自动登录ssh,ftp
    ★Linux命令行操作技巧(作为服务器端)
    ★Linux桌面系统技巧(作为客户端)
  • 原文地址:https://www.cnblogs.com/Sharley/p/10395930.html
Copyright © 2020-2023  润新知