https://blog.csdn.net/themelove/article/details/53126360java
反编译相关:
apktool 做用:资源文件的获取,能够提取出图片文件和布局文件进行查看python
dex2jar 做用:将apk反编译成java源码(classes.dex转化成jar文件)windows
jd-gui 做用:查看APK中的classes.dex转化成的jar文件,即源码文件工具
概述:apktool dex2jar jd-gui他们三个都和反编译相关,可是侧重点不一样,当咱们有不一样的需求时,选择不一样的工具,能够获取不一样的资源。一般状况下,咱们能够三者结合起来用。布局
jd-gui下载地址spa
我汇总的三个工具包下载.net
apktool的使用:xml
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文件拖进去,便可看到反编译以后的源码,大功告成: