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的方式运行的),点击之后根据如下图所示,执行反编译或者回编译。

 



b)        Dex——>源码

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

 

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

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

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

 

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。