1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Ubuntu环境下Android反编译apk教程

Ubuntu环境下Android反编译apk教程

时间:2022-06-09 04:42:35

相关推荐

Ubuntu环境下Android反编译apk教程

1. 前言

在工作中,当开发某个功能,或者通过对比两个apk的表现形式不同,想看看这个apk中的内部文件,无奈只是一个纯apk,而且不是自己开发的,又没有源码,那怎么办呢?这个时候你就需要用到反编译,好了,本篇文章来讲一下Ubuntu下反编译环境的安装和步骤。

2. 工具

反编译apk,我们需要如下3个开发工具:Apktool dex2jar jd-gui

Apktool : 这个工具是用来反编译apk中的资源文件,如res,AndroidManifest.xml等

dex2jar : 这个工具是用来反编译apk的代码

jd-gui : 这个用来查看代码的工具

2.1 apktool

官网下载地址:https://ibotpeaches.github.io/Apktool/install/

我们是Ubuntu开发环境,当然下载Linux版本的,如下:

Installation for Apktool

Linux: Download Linux wrapper script (Right click, Save Link Asapktool)Download apktool-2 (find newest here)Rename downloaded jar toapktool.jarMove both files (apktool.jar&apktool) to/usr/local/bin(root needed)Make sure both files are executable (chmod +x)Try running apktool via cli

按照上面的描述,我们一步一步操作

1. 第一步下载是apktool脚本执行文件,需要VPN翻墙才能下载到,文章结尾会把需要的工具统一打包共享出来

2. 下载最新的apktool_x.x.x.jar 包

3. 把下载的jar包重命名为apktool.jar

4. 把apktool 脚本文件 和apktool.jar 这两个文件拷贝到/usr/local/bin下(root权限)

5. 给这两个文件添加可执行权限

最后结果如下:

工具安装完成后,我们开始反编译apk,然后查看里面的资源文件

步骤一:把需要反编译的apk放置某个文件夹中,终端命令进入到该目录,执行

apktool d test.apk

d就是decode解码的意思

apktool d test.apk -o <dir>

-o 是output,代表输出目录

该命令可用于指定反编译后文件的存储位置,其中<dir>表示目标存储位置

如果遇到这样的错误:Destination directory already exists. Use -f switch if you want to overwrite it.,表示你所指定的目录已存在,可以改用命令:

apktool d -f test.apk -o <dir>

-f 是force 表示强制覆盖

执行过程如下:

成功后,会在同目录下生成一个test文件夹

步骤二:test文件夹中所有的资源文件都是可以查看的,不是乱码

字符串:

AndroidManifest.xml:

2.2 dex2jar

工具下载地址:dex2jar - Browse Files at

把下载最新的dex2jar-x.xzip包解压到当前目录, 找到目标的脚本文件d2j-dex2jar.sh

接下来我们在反编译apk代码:

步骤一: 我们把test.apk后缀名修改为test.zip,然后解压到当前目录

打开test文件夹,有个classes.dex 该文件中存放的就是java代码

步骤二: 接下来将classes.dex文件拷贝到d2j-dex2jar的解压目录下,执行命令

sh d2j-dex2jar.sh classes.dex

过程如下:

home@home-MS-7B89:~/worktools/decodeapk/dex2jar-2.1/dex-tools-2.1$ sh d2j-dex2jar.sh classes.dexdex2jar classes.dex -> ./classes-dex2jar.jar

接下来会在同级目录下生成一个 classes-dex2jar.jar 文件,则表示成功:

当dex 文件转换成 jar文件后,我们仍然无法直接查看jar中的class具体内容,这里我们需要借助于

jd-gui这个查看代码的工具

2.3 jd-gui

工具下载地址: Java Decompiler

选择Linux版本: jd-gui-1.6.6.deb

步骤一:首先我们先安装一下这个工具,命令如下:

sudo dpkg -i jd-gui-1.6.6.deb

安装完成后,在Ubuntu 应用程序列表中找到jd-gui 工具打开

步骤二:通过菜单选项 File -- openFile 打开刚才反编译出来的 classes-dex2jar.jar包

查看里面任何一个class文件,不会显示乱码

好了,到这里就大功告成了,本文中所有需要的开发工具打包后上传到这里:Android反编译apk工具包-Android文档类资源-CSDN下载不需要C币,供有需要的小伙伴下载使用。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。