【Android】记安卓反编译

一个小白开始准备安卓反编译了
注意apk是未加固过的

  1. 查到反编译需要这几个工具apktool:aapt.exe,apktool.bat,apktool.jar;
  2. 在https://ibotpeaches.github.io/Apktool/install/下载apktool
    【Android】记安卓反编译
  3. 上面都处理好以后,打开cmd,切换到apk所在文件夹,输入apktool d name.apk可以看到,也可以用命令apktool d -f [待反编译的apk] -o [反编译之后存放文件夹]
    【Android】记安卓反编译
  4. 可以看到目录下多了一个文件夹
    【Android】记安卓反编译
  5. 文件夹下包含一个smile文件夹,这里面存的就是jar形式的java代码
  6. 把你的apk后缀名改为zip,然后解压后,就会发现有个classes.dex,这里面就是java源码了
  7. 我们需要吧dex文件转为jar格式的文件,用到了一个工具叫dex2jar(下载链接),我们把它下载来后解压(下载来后是zip文件)
  8. 打开cmd进入dex的解压目录,输入命令d2j-dex2jar.bat classes.dex(不在同一个文件夹下,写出classes.dex的正确路径)
    【Android】记安卓反编译
  9. 完成后,dex2jar-2.0目录下就会多了个classes-dex2jar.jar文件,这个就是我们需要的jar文件,接下来就是如何查看java代码了,这里笔者借用一个工具jd-gui(下载链接),下载完解压(这里选择window平台),然后用它打开classes-dex2jar.jar就可以了,如果你的apk经过混淆,那么看到的都是a、b之类的

apk加固后反编译AndroidManifest.xml:
把加固后apk中包藏的meta字段反编译处理,提取查看加固后的值。
首先需要下载工具AXMLPrinter2.jar。我把AXMLPrinter2.jar及其源代码文件放到下载链接

拿到一个加固后的apk后,把它的后缀改成.zip,即变成app.zip,然后把它当做一个普通压缩文件解压,解压后就会在里面找到AndroidManifest.xml文件,显然此时的AndroidManifest.xml是经过加固加密的,需要用AXMLPrinter2.jar将其逆向复原。通过命令:java -jar AXMLPrinter2.jar AndroidManifest.xml > ok.xml AndroidManifest.xml即为加固后加密的文件,ok.xml是经过****后恢复的AndroidManifest.xml文件,此时的ok.xml就可以直接打开查看。

https://www.2cto.com/kf/201606/515799.html