• apktool、dex2jar、jd-gui的区别及详解


    https://blog.csdn.net/themelove/article/details/53126360

    反编译相关:

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

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

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

    概述:apktool dex2jar  jd-gui他们三个都和反编译相关,但是侧重点不同,当我们有不同的需求时,选择不同的工具,可以获取不同的资源。通常情况下,我们可以三者结合起来用。

    apktool下载地址

    dex2jar下载地址

    jd-gui下载地址

    我汇总的三个工具包下载

    apktool的使用:

    cmd下进入到apktool目录下执行:apktool d xxxxx.apk


    运行结果:

    可以看到用apktool反编译apk之后的目录如上:assets 目录和res目录下的文件和原工程中的资源文件一样,lib下是一些第三方的.so文件,smail中是calsses.dex转化成的

    smail文件,并不可读

    apktool的主要用途:

    1.可以获取apk里的资源文件

    2.可以反编译之后修改AndroidManifest.xml文件中的一些配置,比如mete-data,可以用于多渠道打包的实现。

    3.assets目录下放置的配置文件也可以修改。

    应用场景:我们手动反编译修改AndroidManifest.xml中mete-data中的渠道号,在用apktool b [修改好之后的文件目录]  回编成apk,注意,在回编之后的apk是未签名的apk,我们需要重新用jdk中的jarsigner.exe对apk进行签名,再用zipalign.exe对签名后的apk进行对齐优化操作,最终使其成为一个可用的apk.

    以上步骤就是手动修改AndroidManifest.xml来手动打包一个渠道包的过程,我们当然可以将所有的渠道号配置在一个配置文件中,将以上步骤都用批处理或者python写的打包工具来代替,也就是我们常说的多渠道打包工具。这样也避免出错的概率。

    还不会?教你反编译apk手动修改AndroidManifest.xml再回编打一个渠道包

     

    dex2jar的使用:

    1.首先将下载好的xxx.apk改名为xxx.rar,方便解压,解压之后如下图:

    2.之后将我们下载好的dex2jar.zip解压进入到如下目录:

    图中选中的就是我们要用到的工具。

    3.打开cmd 进入到该目录执行  d2j-dex2jar.bat xxxx.classes.dex 如下图

    运行结果如下图:

    会在批处理所在目录生成classes-dex2jar.jar文件

    该步骤主要是将classes.dex---------->xxxxxxx.jar文件,而xxxxx.jar里面就是我们的.class文件,解压xxxxx.jar后目录如下:

    我们知道xxxxxx.class 的字节码文件我们是不能直接预览的。所以我们要用到下面的工具

    3.jd-gui的使用

    查看xxxxxxx.jar里的源码

    1.找到我们下载的jd-gui-windows-1.4.0.zip并解压,找到jd-gui.exe,并把上面步骤中生成的xxxxxx.jar文件拖进去,即可看到反编译之后的源码,大功告成:

  • 相关阅读:
    Win10创意者更新秋季版激活秘籍
    将刷了Android的Lumia恢复为WP系统
    给Lumia 520/521/525/526/720刷Android系统
    DNS解析
    遍历对象目录
    PE注入
    利用NtCreateThreadEx注入
    利用CreateRemoteThread注入
    APC注入
    SetWindowHookEx()注入
  • 原文地址:https://www.cnblogs.com/eustoma/p/8972983.html
Copyright © 2020-2023  润新知