Android逆向之旅——apktool,dex2jar,jd-gui

解压缩的方式反编译apk

Android应用程序apk文件说到底就是一个压缩文件,那么可能你就会说,既然是个压缩文件,那我们直接解压不就能得到他的文件了么。ok,我们可以先来试试,下面是我简单写的一个应用打包之后的apk,解压缩之后的目录是:

看到上边的目录是不是很熟悉,心想大功告成,迫不及待的打开我们最为熟悉的AndroidMainfest文件。然后就是一脸懵逼。全是乱码,什么鬼。如下图所示。其实这是经过Android加密过的,所以我们无法查看,内心多少有点失落。然后还有更失落的在后边,认真一看,少了最重要的一个文件夹,src目录我们根本没找到。

到这里我们基本知道这样是行不通的,那么怎么去真正的反编译一个apk呢?接下来就需要用到三个重要的工具,就是标题里边提到的apktool,dex2jar,jd-gui

apktool的使用

1、下载apktool的jar包,这里我下载的是最新版本,apktool_2.2.1.jar。下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

2、对指定的apk进行反编译,首先使用命令行进入jar所在的目录下,然后输入命令apktool_2.2.1.jar d app-release.apk。命令很简单,d就是decode,然后就是apk的目录。执行后,在该目录下会生成一个和apk同名的文件夹,再来进入这个文件夹,目录为:

再来打开res中的xml文件,现在代码就一览无余了,不再是之前的乱码。这个工具主要可以用于提取资源文件。

3、重新打包的命令也很简单,apktool_2.2.1.jar b app-release:只需要将d改为b,后边是刚才生成的对应文件夹的名字即可。执行之后对应的文件夹下边会多出两个文件,一个是build,一个是dist。重新打包之后的apk就在dist文件夹下。

以上只是提取出了资源文件,重头戏还在后边呢。

Dex2jar的使用

1、首先下载dex2jar放在你能找到的位置

2、再回头看我们刚开始解压缩出来的目录,有一个很重要的文件,dex文件

这个就是源代码打包后的文件,将这个文件复制到dex2jar-2.0目录下,然后输入命令进入该目录下,再执行d2j-dex2jar.bat classes.dex。执行完成后在该目录下会生成一个jar文件。这一步我们只需要获取这个jar文件,所以到这里就结束了,接下来就是最后一个工具jd-gui了。

jd-gui的使用

file-open file,选择刚才生成的jar文件。然后就没有然后了,这里当然不能上图了。

到此我们就完美的反编译了应用。但是但是我们的目的是学习,千万不要过度哦,我们是开发,当然还是要保护我们的程序,古在此分享出来只是供大家更好的学习,而不是去搞破坏的。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值