浅析,反编译 Android APK流程分享!

原创 2015年07月07日 12:12:40

       作为公司的技术兼产品人员,看到别人开发的优秀Android APK实在羡慕,在Android开发的过程,也很想去学习别人那些漂亮的动画和布局,或是产品逻辑等是怎么做的,所以最近学习了对APK的反编译,只做学习借鉴,提升产品竞争力,不为任何不法企图之用。
       首先下载反编译软件apktool 、dex2jar、 jd-gui对APK进行反编译

工具介绍:

        apktool :资源文件获取,可以提取出图片文件和布局文件进行使用查看,其原理详情:(http://my.oschina.net/1590538xiaokai/blog/467830

         dex2jar:将apk反编译成java源码(classes.dex转化成jar文件)

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

反编译流程:

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

        下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test(命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat d -f [apk文件 ] [输出文件夹])

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

        如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat b test(你编译出来文件夹)便可,效果如下:之后在之前的test文件下便可以发现多了2个文件夹:build dist(里面存放着打包出来的APK文件)

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

       下载上述工具中的dex2jar和jd-gui ,解压将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,效果如下:在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件便可以看到源码了,效果如下:被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名)。


       三、 图形化反编译apk

        上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk通过反编译,你可以获知该应用用到了什么第3方的库文件,它的代码是如何编写的等等。

       当然,有些APK为了避免被他人反编译,所以进行了代码混淆。因为很多不法分子盗版一款APP就是从反编译开始。所以从移动应用安全角度讲,为了避免他人了解自己的APK的布局和逻辑,的确应该做一些反编译的保护措施,尤其是避免被竞争对手看到。如果开发者不想被他人反编译,提高APK的安全性,可以使用爱加密进行加密保护。我也做过测试,使用爱加密后,原有的代码程序都被隐藏了,没法再看到源代码。

       作为一个普通移动开发者,反编译的目的只是了解他人应用程序的大体思路,对开发工作有益无害。

Android 反编译APK + 工具(亲测可用)

一。反编译apk生成程序的源代码和图片、XML配置、语言资源等文件 apktool是一款功能强大且操作简单的apk反编译破解工具。 唯一需要注意的是,反编译过程中应避免中文路径和中文文件名。...
  • qq_28641023
  • qq_28641023
  • 2016年11月01日 16:37
  • 1482

一个三年Android开发的总结 - Android应用的反编译

Android开发中需要分析一些应用功能的实现原理,往往也就逃不开应用的反编译与重打包,这里简单介绍一些反编译和重打包的实操方法,供需要反编译时随时查看依步骤操作。 这里不详述adb命令的使用,ja...
  • w7849516230
  • w7849516230
  • 2016年05月29日 15:49
  • 2843

Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划

美国时间 2013 年 10 月 31 日, Google 正式发布了全新版本的移动操作系统 Android 4.4 KitKat 。据 google 官方介绍,Android 4.4 降低了硬件的...
  • yihongyuelan
  • yihongyuelan
  • 2014年02月28日 15:28
  • 25712

APK反编译流程

一. 反编译apk获取资源文件:2Ad平坦软件园     1. 工具下载:2Ad平坦软件园        (1)APKTOOL的JAR包:http://code.google.com/p/androi...
  • mars5337
  • mars5337
  • 2011年06月20日 09:44
  • 516

apk的反编译,第一次使用apktool,整理一下整个流程

网上查了好多帖子,好像目前反编译apk工具使用最广泛的就是apktool,这里先说一下整个流程用到的工具有: 1.apktool,下载后拿到apktool.bat和apktool.jar,然后把这两个...
  • u013133126
  • u013133126
  • 2016年10月24日 11:27
  • 4917

Android APK反编译就这么简单 最新版本详解(附图)

在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用...
  • qing666888
  • qing666888
  • 2016年06月25日 23:47
  • 2535

教你用最新工具反编译android apk

所谓工欲善其事必先利其器,首先从官网拿到最新的反编译工具: APK反编译工具: dex2jar:https://github.com/pxb1988/dex2jar(原网址:http://c...
  • u014763302
  • u014763302
  • 2016年06月05日 21:16
  • 10516

Android 中反编译APK的方法,留着自己用

http://blog.csdn.net/luoxianxion/article/details/7493350 一. 方法一:  工具下载:需用到dex2jar和JD-GUI这2个工具 ...
  • huangxi_love
  • huangxi_love
  • 2012年04月25日 14:07
  • 298

Android APK反编译技术

Android的APK反编译主要由反编译源码以及反编译资源两部分,第一种方法用来学习别人优秀的代码,第二种方法可以反编译做汉化或其它一些有用的用途. 源码反编译工具包下载:http://downloa...
  • tanghua0809
  • tanghua0809
  • 2015年06月24日 11:27
  • 297

Android APK反编译详解(附图)

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完...
  • sunboy_2050
  • sunboy_2050
  • 2011年08月28日 22:42
  • 860229
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅析,反编译 Android APK流程分享!
举报原因:
原因补充:

(最多只允许输入30个字)