• 使用dex2jar和jd-gui和apktool反编译一个apk


    1. dex2ja:用来反编译apk

      jd-gui:把反编译生成的jar变成java语言

      apktool:反编译生成xml

      将要反编译的APK后缀名改为.rar或 .zip,并解压

      怎么用dex2jar反编译一个apk
    2. 2

      得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内

      怎么用dex2jar反编译一个apk
    3. 3

      在命令行下定位到dex2jar.bat所在目录,输入d2j-dex2jar.bat   classes.dex。

      效果如下:

      怎么用dex2jar反编译一个apk
    4. 4

      在该目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

      怎么用dex2jar反编译一个apk
    5. 5

      被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

      怎么用dex2jar反编译一个apk

    apktool  

         作用:主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)

    dex2jar

         作用:将apk反编译成Java源码(classes.dex转化成jar文件)

    jd-gui

         作用:查看APK中classes.dex转化成出的jar文件,即源码文件

    新版本apktool用法:

    1、下载:
     
     
    当然了上面这个链接和图片描述的可能也会变。
    目前就是下载两个文件apktool.bat和apktool.jar(这个如果你下载的文件有版本号,比如apktool_2.2.1.jar,就要改名字为apktool.jar),
    然后把上面两个文件都放到C://Windows下面。(我是windows系统,其他系统按照自己的来)
     
    2、使用方法
     
     
    官网教程
     
    $ apktool d test.apk
    I: Using Apktool 2.2.1 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.1 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
    
    其实就是,运行CMD,进入比如app-release.apk所在目录,然后运行apktool d app-release.apk就可以了,默认解压的文件就在app-release.apk所在目录。
     
     

    最后,如果我上面的方法不能用了,请看英文的原网页怎么说。

    比如:

    http://blog.csdn.net/vipzjyno1/article/details/21039349/#reply

    dex2jar

         作用:将apk反编译成Java源码(classes.dex转化成jar文件)

    jd-gui

    作用:查看APK中classes.dex转化成出的jar文件,即源码文件

    Smali2JavaUI

    对于博主说得,先dex2jar把classes.dex转为jar,再jd-gui把jar转为源码*.java文件。
    现在可以用Smali2JavaUI这个软件,一部到位。可以把这两个步骤化为一个步骤。
     
    所以,如果只想反编译看*.java文件的话,只用Smali2JavaUI软件就可以了。
    这个软件可以直接打开***.apk文件,然后就直接看到*.java文件了。
    Smali2JavaUI最新版本下载链接http://www.hensence.com/cn/smali2java/#Download
     
    http://blog.csdn.net/ysc123shift/article/details/52985435
  • 相关阅读:
    linux安装skype
    (转)程序员最应该读的图书
    Smarty 学习笔记六 缓存
    Smarty 学习笔记二 常用内置变量
    Smarty 学习笔记七 debug
    文本文件与二进制文件区别
    zz 通用线程:Awk 实例,第 2部分
    MIT墙上的格言
    AWK学习笔记
    zz SED单行脚本快速参考 以及 AWK版本
  • 原文地址:https://www.cnblogs.com/lonske/p/9166485.html
Copyright © 2020-2023  润新知