Linux下APK反编译(Apktool dex2jar jd-gui的下载和使用)

一般认为,使用linux系统的都是比较熟悉计算机操作的, 但是也不乏我这样的刚入手Linux的小白.最近转到Linux下开发,好多事情慢慢熟悉起来.给大家说一说Linux系统下的APk反编译.

关于windows下的反编译,请参考下面文章链接, 说的很详细:

http://blog.csdn.net/vipzjyno1/article/details/21039349/

搜罗了那么多教程文章,其实我最关心的无非是两件事情:

1. 最新版本反编译工具的下载

2. 反编译工具的使用

反编译通常有两种应用场景:

一是想要获取APK中的资源文件, 例如好看的动画, 布局文件等, 这个需求要用到的工具就是Apktool.

二是想要要大致看一下代码逻辑, 这时候用到工具是dex2jar和jd-gui.


对于第一种场景:

在Linux下最新版Apktool下载地址是:

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

目前最新版是2017-1-23号的, 下载完是一个jar文件, 还没完, 要改一下文件名称, 改成apktool.jar.然后还要下载另外一个文件, 这个文件叫做apktool(注意是apktool不是刚才下的那个apktool.jar哦), 实际上一个sh文件.其实apktool.jar这个文件在Linux下和win下都是一样的,不一样的是这个apktool文件而已.apktool这个文件的下载, 需要点击刚才那个链接页面的"Install Docs"

点完之后是这个样子的:

Linux下APK反编译(Apktool dex2jar jd-gui的下载和使用)_第1张图片

标号1的那个绿色的子,其实就是我们需要的apktool文件, 右键点击另存为, 就ok了, 注意看标号3那一行, 如果是64位的系统,要下载32位的依赖, 自行百度吧. 刚才我们下载完apktool.jar文件后重命名, 在这里的标号第5行也有体现. 接下来就是按照说明写的, 讲这两个文件移动到/usr/local/bin目录下, 注意需要sudo权限.而且至今我也不知道怎么在图形化界面下将这两个文件复制过来, 只能在命令行里通过"sudo cp 源文件路径+文件名 目标文件路径"的方式.然后给cd到这两文件所在的文件夹, 分别给这两个文件加上可执行权限:

sudo chmod +x 文件名

然后输入 apktool d -f apk路径+文件名.apk -o 反编译后文件输出路径  就可以进行反编译了.


对于第二种场景:

先说下操作步骤:

首先将要反编译的APK重命名为zip文件, 然后提取其中的classes.dex文件.将这个文件用dex2jar工具转换成.jar文件, 然后再用jd-gui工具打开.jar文件, 查看其中的源码.

dex2jar下载地址:

https://bitbucket.org/pxb1988/dex2jar

这个网址上发布了四个网址, 第一个是点击第一个后面的Downloads选项就可以下载dex2jar的zip包, 第二个网址就是网面这个网址的本身, 第三个网址是github上的托管. 第二和第三个网址上面的都是源码, 我找了半天也没找到sh文件, 有知道怎么用的人还请帮忙告诉我要想从这两个网站下载源码, 需要再怎么操作才能使用dex2jar. 本人功力有限, 所以直接从第一个网站下载的zip包.

下载完zip包后解压, 里面那个d2j-dex2jar.sh就是Linux下执行文件, 里面还有一个d2j-dex2jar.bat, 是windows下用到的批处理命令. 给d2j-dex2jar.sh增加可执行权限, 将dex文件复制到zip包解压完后的目录里, 然后运行 sh -f d2j-dex2jar.sh 文件名.dex, 这时候会报错, 根据报错信息提示, 在给这个目录下的d2j-invoke.sh增加可执行权限, 然后再执行 sh -f d2j-dex2jar.sh 文件名.dex, 稍后, 当前目录下就多出了一个jar文件, 这个文件就是dex的解压文件.


然后就是jd-gui工具的下载, 正宗的jd-gui下载地址:

http://jd.benow.ca/

下载下来是个jar文件, 运行 java -jar jd-gui命令, 就能启动jd-gui, 然后... 就没有然后了.

上面提到的工具, 我都下载好了, 已经上传到下载频道, 可是要审核还是怎么的, 上传成功了却还没有显示, 稍后奉上下载链接.

下载链接:http://download.csdn.net/detail/fozei/9770502

本人水平有限, 文笔也不好, 思路也不清晰, 有谬误的地方, 欢迎指正, 谢谢!!!!


你可能感兴趣的:(成长)