3

Android APK反编译就这么简单 详解(图文详解)

 3 years ago
source link: http://www.androidchina.net/6974.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
自己很早以前就在反编译,但是知道今天要做才又捡起来了,今天就把他记录下来吧。

1、测试环境:

    win10 

2、使用工具:

2.1 CSDN上下载地址:

apktool
dex2jar
jd-gui

2.2 官方最新版本下载地址:

apktool(google code)

dex2jar(google code)

jd-gui(google code)

apktool

 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

dex2jar

 作用:将apk反编译成Java源码(classes.dex转化成jar文件)

jd-gui

 作用:查看APK中classes.dex转化成出的jar文件,即源码文件

反编译流程

一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件

1)下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,

这里写图片描述

2)打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f  fish.apk  fish
(命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat   d  -f    [apk文件 ]   [输出文件夹])

这里写图片描述

3)说明获取成功,之后发现在文件夹下多了个fish文件,点击便可以查看该应用的所有资源文件了。

4)如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat   b    test(你编译出来文件夹)便可,效果如下:

5)之后在之前的test文件下便可以发现多了2个文件夹:

    build

    dist(里面存放着打包出来的APK文件)

二、Apk反编译得到Java源代码

1)下载上述工具中的dex2jar和jd-gui ,解压

2)将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,

3)在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat   classes.dex,效果如下:

这里写图片描述

4)在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

这里写图片描述

5)被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名)。

这里写图片描述

反编译现况

由于这种工具的存在对于知识产权的保护非常的不利,所以现在的技术也发生了改变,很多公司都会对自己的产品进行设置,在反编译的时候可能会出现各种各样的异常,导致反编译失败。

如何避免自己的产品被反编译

参看博客:Android如何防止apk程序被反编译

转载请注明:Android开发中文站 » Android APK反编译就这么简单 详解(图文详解)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK