码迷,mamicode.com
首页 > 移动开发 > 详细

android之反编译浅析

时间:2014-10-29 15:00:36      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:android   android反编译   反编译工具   签名   

android反编译浅析

 

从接触android开发开发,反编译一直就是离不开的工具,学习好的android应用的代码编写规范。

 

这篇文章主要就是讲述如何反编译apk文件得到java文件的,反编译不为了窃取,仅供学习交流代码而已。本文的目录结构为:

1、概述

2、详细的讲述apk工程的反编译

 

概述:

分析Android工程的目录结构可以知道,其基本上可以简单的理解为三个部分:源码,资源文件和编译配置文件。这其中的资源文件(图片,xml文件,assert等)是从打包开始就直接存放在apk中的,图片等无需反编译,源码(暂时接触到java源码)文件则很有可能会被“混淆”以防止别人反编译,混淆文件存放在配置文件ant.properties文件中的;而配置文件,主要是androidManifest.xml文件则是直接暴露出来的,这很关键。获取xml文件盒源码则成为反编译最重要的任务。

 

下面来详细的讲述apk工程的反编译

一、使用编译工具

本人也是直接从网上下载的反编译工具,使用效果不错,这里提供下载地址:http://download.csdn.net/detail/feishangbeijixing/8094335

1、apktool,得到xml文件 

2、android反编译工具  

 

二、开工

a)        Apk——> 工程目录

这一步相对很简单,主要是为了得到androidManifest.xml文件,dex文件,布局文件和资源文件。有两种方式都可以实现:

1、  直接将apk解压缩

这样的情况下,没有经过“混淆”的apk工程是可以直接得到xml文件(可直接阅读的)和dex文件的;但是经过“混淆”的apk工程文件中xml文件貌似不可以直接读取(显示乱码)

2、  使用apktool工具

使用方法:先将apktool解压缩,在apk文件夹目录下放置需要解压缩的apk文件并更名为123.apk。双击apkTool文件(其实是一个windows的脚本文件,也可知是可以通过Dos的方式运行的),点击之后根据如下图所示,执行反编译或者回编译。

 bubuko.com,布布扣



b)        Dex——>源码

有上一步得到的dex文件(在上一步中直接解压就有可能得不到dex文件,试过几次貌似如此)

 bubuko.com,布布扣

使用android反编译工具中的dex2jar.bat工具,位置:android反编译工具Android反编译\dex2jar-0.0.9.15。

1、  执行命令:dex2jar.bat  classes.dex(执行命令之前需要先将classes.dex文件放置到dex2jar-0.0.9.15这个文件夹下,执行命令之后就可以得到classes_dex2jar文件)

bubuko.com,布布扣

2、  用jd-gui工具查看上一步中得到的class-dex2jar包文件。就可以看到源码了

 bubuko.com,布布扣

3、反编译完了就可以查看并修改没有经过“混淆”的源码了。然后再用apkTool来回编译并签名就可以使用“你的”apk应用了

android之反编译浅析

标签:android   android反编译   反编译工具   签名   

原文地址:http://blog.csdn.net/feishangbeijixing/article/details/40583911

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!