精华内容
下载资源
问答
  • APK反编译APK反编译APK反编译APK反编译APK反编译APK反编译APK反编译APK反编译
  • APK反编译

    万次阅读 多人点赞 2017-12-27 17:31:39
    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用...但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反
    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等,apk反编译也算是Android开发中一个比较实用的技巧吧,当我们对别人开发好的应用感兴趣时,我们就可以通过这种技术手段将别人打包好的apk进行反编译,继而可以看到我们感兴趣的内容,(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)下面就来说说如何将一个apk反编译出来。

    一、准备必要工具

      工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具

    1.1、使用工具

    1. apktool (资源文件获取) 
    2. dex2jar(源码文件获取)
    3. jd-gui  (源码查看)

    1.2、工具介绍

      apktool  

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

      dex2jar

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

      jd-gui

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

    1.3工具下载

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

      

      下载好之后得到一个如下图所示的jar文件

      

      dex2jar下载地址:http://sourceforge.net/projects/dex2jar/files/

      

      

      下载完成之后,得到一个如下图所示的压缩包

      

      jd-gui下载地址:http://jd.benow.ca/

      

      下载完成之后,得到一个如下图所示的压缩包:

      

      到此,需要使用到的3个相关工具都下载好了,在这里说明一下jd-gui的下载,我从官方网站上点击下载时会经常出现如下图所示的问题

      

      但是多试几次又可以下载了,所以如果有遇到这个问题的朋友们不妨多试几次,或者从别的地方下载jd-gui,jd-gui算是做Java开发的一个必备工具了,用它来将class反编译成java源代码是非常方便的,网上搜索一下一般都可以下载到,只不过版本不一定是最新的。

    二、Apk反编译流程

      为了方便进行反编译,我们将上述下载好的3个工具统一放到一个文件夹中,例如:

      

      然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹,如下图所示:

      

    2.1、使用apktool反编译apk得到图片、XML配置、语言资源等文件

      进入CMD命令行,如下:

      

      切换到上述的3个工具的所在目录,如:E:\AndroidDevelopTool\Android反编译工具包

      

      接下来我们要做的就是运行apktool_2.0.1.jar这个jar文件来将apk文件进行反编译,在java中,运行可执行jar包的命令是:

    java -jar jar包名.jar

      使用如下的命令运行apktool_2.0.1.jar反编译MMTS-release-1.0.2.apk

    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】文件夹中。这个文件夹的名字是可以随便取的,喜欢叫啥都行。

      执行反编译操作:

      

      反编译成功后,会在当前目录(E:\AndroidDevelopTool\Android反编译工具包)下生成一个MMTS文件夹,打开MMTS里面就有反编译后生成的文件,如下图所示:

      

      打开MMTS文件夹,就可以看到反编译后的生成的文件,如下图所示:

      

      生成的文件和文件夹当中,我们关心的是【res】文件夹中和AndroidManifest.xml文件,打开res文件夹,里面就有我们想要看到的东西了,如下图所示:

      

      

      

      

      想查看哪个xml文件就使用文本编辑器打开看看吧,反正全部都可以看到了。以上就是使用apktool这个工具将一个apk反编译得到图片、XML配置、语言资源等文件的过程。

    2.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....之类的样式命名):

      

      以上步骤是我亲自实践过之后一步步整理出来的,对照着做应该不会有太大问题。

    三、Apk反编译注意问题

    3.1、apktool版本太旧导致反编译失败的问题

      之前用过了apktool这个工具的一些旧版本,发现总是反编译不成功,在执行反编译时会出现如下错误:

      Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file

      

      这个问题是因为apktool版本过低导致,而解决这个问题的办法就是使用最新版本的apktool就可以了,最新版本的下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

    3.2、apktool执行反编译命令出现”Input file was not found or was not readable"的问题

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

      好了,关于反编译apk的内容就这么多了。
      最后,给大家分享我下载好的那三个相关工具,下载地址:http://pan.baidu.com/s/1jGKSQyU

    展开全文
  • apk反编译

    2011-07-22 00:11:42
    apk反编译apk反编译apk反编译apk反编译apk反编译apk反编译apk反编译apk反编译apk反编译apk反编译
  • apk 反编译

    2019-08-06 22:04:00
    apk 反编译 - 最新版图文教程 结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片)、layout、样式、相关的实现代码等。(注:反编译不是让各位...

    apk 反编译 - 最新版图文教程

    结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片)、layout、样式、相关的实现代码等。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,学习)

    后续也会再整理一篇防止反编译的教程

    转载请注明出处

    一、准备工具

    提示:这些工具在官网都不好下载,偶也是废了好大力气呢,建议直接下载我提供的网盘链接

    (1) 使用工具介绍:

     1.apktool 最新版 jar 包
      作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
      2.dex2 jar 的zip包
      作用:将apk反编译成java源码(classes.dex转化成jar文件)
      3.jd-gui 工具
      作用:查看APK中classes.dex转化成出的jar文件,即源码文件

    (2) 使用工具下载与安装:

      1.apktool_2.3.4 jar 包(2018.10.31 目前最新版)
       百度网盘地址:https://pan.baidu.com/s/1Vp6PDUc9dfgN0QPtwFp4Zw 密码:c8n3
       官网下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/

      2.dex2 2.0 jar 包(2018.10.31 目前最新版)
       百度网盘地址:https://pan.baidu.com/s/1yk5bVAMPYov66u23kxYAJw 密码:irxv
       官网下载地址:http://sourceforge.net/projects/dex2jar/files/

      3.jd-gui 1.4.0(2018.10.31 目前最新版)
       百度网盘地址:https://pan.baidu.com/s/1ceirRfHzfiqcHFHGxj2fkA 密码:mx14
       官网下载地址:http://jd.benow.ca/

    二、Apk 反编译步骤

    (1) 使用 apktool 反编译 apk 得到图片、XML配置、语言资源等文件

     1.将上述下载好的 3 个工具统一放到一个文件夹中(目录最好不好有中文),并解压 zip 文件,例如:

     2.打开 cmd/终端,进入上述工具目录

     3.运行apktool_2.3.4.jar这个jar文件来将 apk文件进行反编译,在java中,运行可执行jar包的命令是:

    java -jar apktool_2.3.4.jar d -f apk文件绝对路径 -o 输出的目录

    例如: 使用如下的命令运行apktool_2.0.1.jar反编译MMTS-release-1.0.2.apk

    java -jar apktool_2.3.4.jar d -f D:\apkDecompile\ocrTest.apk -o source

    这个命令是启动 apktool_2.3.4.jar 将位于 D:\apkDecompile\ocrTest.apk 文件执行反编译,然后将反编译生成的文件存放到 apk 文件同级的 source 目录下,截图:

     4.然后就会生成源文件的目录,有开发经验的大概能看出点什么

     5.重要的有【res】目录和【AndroidManifest.xml】

    以上就是使用 apktool 这个工具将一个 apk 反编译得到图片、XML配置、语言资源等文件的过程

    (2) 使用 dex2jar 反编译 apk 得到 Jar 包

      将要反编译的 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 源代码了

    (3) 使用 jd-gui.exe 工具将 class 文件反编译成 java 源代码

     1.打开 jd-gui.exe 程序(不需要安装,之前 zip 包解压即可)

     2.打开 jar 文件,截图:

     3.选择 class 文件就可以看到 java 源代码:

    三、出错提示:

    如果那不出错了,基本就是工具版本的问题,建议全部下载最新版或者全部使用我提供的版本

    转载于:https://www.cnblogs.com/nul1/p/11312181.html

    展开全文
  • 2021 Android APK反编译 apktool使用教程

    万次阅读 多人点赞 2016-10-31 19:36:33
    然后百度“apk反编译”,出来最多的是apktool反编译。百度也真是越来越水了,反正百度出来的教程都是N年前的,现在早就不能用了。很多博主也都不跟新博客了,然后随着jdk发展apktool也跟新很多代了。所有有些博主的...

    欢迎交流。微信公众号:一休日记。

    目录

    前言:

    工具介绍:

    新版本apktool用法:

    Smali2JavaUI


    前言:

    最近我在使用Android Studio混淆打包release版本,打包是否成功?自然想到了反编译。然后百度“apk反编译”,出来最多的是apktool反编译。百度也真是越来越水了,反正百度出来的教程都是N年前的,现在早就不能用了。很多博主也都不跟新博客了,然后随着jdk发展apktool也跟新很多代了。所有有些博主的内容,已经没法儿用了。

    比如:

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

    这个博主,有些地方说得还不错。但是apktool下载版本和用法早就过时了,现在已经没法儿用了。

    工具介绍:

    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所在目录。
     

     

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

    原网页在这 https://ibotpeaches.github.io/Apktool/#

    其他比如:

    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
     
     
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,636
精华内容 4,654
关键字:

apk反编译