歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Ubuntu Linux APK文件的反編譯

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工具查看就可以了。

Copyright © Linux教程網 All Rights Reserved