android之反编译浅析
android之反编译浅析
飞上北极星 发表于7个月前
android之反编译浅析
  • 发表于 7个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

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)       smail----->dex

今天自己按照自己的blog反编译的时候才发现原来上一步得到的只是smail文件,还不是直接得到dex文件,特地来修改一下。

将自己的apk直接用压缩包解压缩就直接可以得到dex文件,后面的dex——>jar就可以直接使用了!


c)        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应用了

共有 人打赏支持
粉丝 0
博文 140
码字总数 0
×
飞上北极星
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: