Ubuntu Linux APK文件的反编译

简介:

原文:http://www.linuxidc.com/Linux/2012-02/52953.htm


apk文件的反编译,需要的工具apktool(反编译资源文件)和dex2jar-0.0.7.9-SNAPSHOT(反编译源码)

1.配置apktool

在命令行输入下面命令(只输入$以后的命令语句)

www.linuxidc.com@linuxidc:~$ sudo ln -s /home/ww/apktool/apktool(自己的apktool文件所在的位置) /usr/bin/apktool (配置全局)

www.linuxidc.com@linuxidc:~$ apktool

(注:

1.如果此时命令行打印出一些配置命令,则apktool已经配置成功。

2.如果此时命令行下面的抛出异常,则说明当前电脑的jdk的版本过低,配置成适合apktool的即可。

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)


2.反编译的目标apk文件

1).反编译资源文件

命令行进入要反编译的apk文件所在的文件夹

www.linuxidc.com@linuxidc:~$ apktool d xxx.apk(apk路径)ABC(文件夹名称,这是自命名,可以不写,如果不写,则默认当前apk的文件名)

2).反编译源码(反编译class.dex)

命令行进入dex2jar-0.0.7.9-SNAPSHOT根文件夹

首先解压目标apk文件,得到class.dex。把class.dex拷贝到dex2jar-0.0.7.9-SNAPSHOT文件夹中

命令行执行

www.linuxidc.com@linuxidc:~$sh dex2jar.sh classes.dex 

执行完毕之后,会在dex2jar-0.0.7.9-SNAPSHOT文件夹中生成一个classes.dex.dex2jar.jar的文件,这个文件就是反编译源码的压缩文件。

3.查看反编译之后的源码

由于反编译之后的源码是.class文件,所以要用专有的软件才能看。

解压classes.dex.dex2jar.jar文件,用JD-GUI工具查看就可以了。


相关文章
|
4天前
|
Ubuntu Linux Python
Linux(15)Ubuntu安装ninja构建工具
Linux(15)Ubuntu安装ninja构建工具
15 0
|
1天前
|
人工智能 Linux
Linux查找大文件的方法
Linux查找大文件的方法
|
1天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
11 1
|
2天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
9 1
|
3天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
35 1
|
3天前
|
固态存储 Ubuntu Linux
Linux(29) 多线程快速解压缩|删除|监视大型文件
Linux(29) 多线程快速解压缩|删除|监视大型文件
11 1
|
3天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(24) 如何在Ubuntu中操作rootfs.img文件
Linux(24) 如何在Ubuntu中操作rootfs.img文件
9 0
|
4天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
27 0
|
4天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(7)Ubuntu20.04 arm64安装Docker
Linux(7)Ubuntu20.04 arm64安装Docker
18 0
|
4天前
|
Ubuntu Linux 芯片
Linux(2)ubuntu rootfs根文件系统制作
Linux(2)ubuntu rootfs根文件系统制作
19 0