android反编译

需要用到的工具:

apktool:https://ibotpeaches.github.io/Apktool/

jd-jui:http://jd.benow.ca/

dex2jar:https://github.com/pxb1988/dex2jar


首先来简单的说明下Apk文件本质上其实是一个zip包。我们直接进行解压就能看到其中的目录。

Android反编译工具总结

目录说明

  • AndroidManifest.xml:应用的全局配置文件
  • classes.dex:源代码编译成class后,转成jar,再压缩成dex文件,dex是可以直接在Android虚拟机上运行的文件。
  • lib文件夹:引用的第三方sdk的so文件。
  • META-INF文件夹:Apk签名文件。
  • res文件夹:资源文件,包括了布局、图片等等。
  • resources.arsc:记录资源文件和资源id的映射关系。
  • 其中还有一个没有显示就是→assets文件夹:原始资源文件夹,对应着Android工程的assets文件夹,一般用于存放原始的网页、音频等等。

上述的这些说明 简单的说明了一个apk基本包含的东西,直接把apk解压是没有办法进行阅读的,在打包这个过程中经过了build-tools处理了。

其实反编译Apk的目的就是Apk拆成我们可以阅读的文件。通过反编译,我们一般想要得到里面的AndroidManifest.xml文件、res文件和java代码。

我将介绍3个工具来对apk进行反编译

1、反编译java代码首先需要下载dex2jar这个工具,下载地址:sourceforge.net/projects/de…
2、将要反编译的apk文件重命名为zip格式并解压缩,注意其中的classes.dex文件,它存放了全部的java代码,将classes.dex文件拷贝到dex2jar解压后的根目录下。
3、打开cmd,进入dex2jar解压后的根目录,执行命令:

d2j-dex2jar classes.dex


命令执行完后在对应目录下会生成classes-dex2jar.jar文件


要查看java代码,还需要下载 jd-gui 这个工具,下载地址: jd.benow.ca/ ,目前最新版是1.4.0,下载完后解压缩,并用 jd-gui.exe 打开上边反编译出来的jar文件:

二、反编译资源

Apktool: ps://ibotpeaches.github.io/Apktool/

cmd到当前目录下面,并且把自己 .apk放到当前同级目录下面,执行如下命令:

java -jar apktool_2.3.1.jar d ApkName.apk


其中,res文件夹下存放的是反编译出来的所有资源,smali文件夹下存放的是反编译出来的所有代码,AndroidManifest.xml则是经过反编译还原后的manifest文件。smali文件夹下的文件smali文件使用的是Android虚拟机所使用的寄存器语言,如果看的懂smail文件的话,就可以修改源代码的逻辑了,好可怕的事...当然这不是我们重点讨论的。
此时查看AndroidManifest.xml文件,发现已经成功反编译出来了:


AndroidManifest.xml

参考文章: https://www.jianshu.com/p/9e0d1c3e342e

https://juejin.im/entry/57f0ae0e2e958a00555000a7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值