Chinaunix首页 | 论坛 | 博客
  • 博客访问: 513139
  • 博文数量: 114
  • 博客积分: 271
  • 博客等级: 二等列兵
  • 技术积分: 733
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-24 13:40
文章分类
文章存档

2014年(5)

2013年(14)

2012年(95)

分类: LINUX

2012-09-23 14:05:21

原文出处:

查看apk文件,反向工程 

先说一下apk的结构。APK采用了zip格式的压缩,我们可以很容易解压。
一个APK文件结构为:

META-INF\   Jar文件中常可以看到

res\  存放资源文件的目录

AndroidManifest.xml  程序全局配置文件

classes.dex  Dalvik字节码

resources.arsc  编译后的二进制资源文件

apk下的文本文件是做了二进制处理的。

如果我们只是想看APK 的Manifest信息。可以使用aapt命令。

命名格式为:

aapt dump badging  *.apk  (这里*.apk是你的apk名)

aapt命令我们可以在SDK下对应版本下的tools文件夹下找到:

这个是我的路径:C:\android-sdk-windows\platforms\android-7\tools

如果是res目录下的文件,则需要用工具来读取并生成文本文件,android4me的AXMLPrinter2是个很好的选择。

下载地址:



使用方法:

java –jar AXMLPrinter2.jar  capture.xml > test.xml

执行后,将标准输出capture.xml到test.xml文件。

下面我们开始反编译代码部分。反编译代码需要两个工具:

dex2jar,用于将dex文件转换为jar文件; 
jd-gui,将jar文件反向工程为java代码。 
dex2jar的地址:

下载后解压,dex2jar 的命令使用:

dex2jar.sh  classes.dex

命令执行后,会在该文件夹下生成一个classes.dex.dex2jar.jar的文件。

jd-gui分windows,mac,linux三个版本。我们下载对应版本。

jd-gui的地址:

下载后解压,点执行文件。把刚才dex2jar生成的jar文件拖入jd_gui界面即可生成源代码。

附手机中安装过的程序导出方式:

  将apk文件拷贝至sdcard上。命令顺序如下:
    * 进入Android sdk文件夹/tools目录下
    * 输入adb shell
    * 输入su
    * 输入cd data
    * 输入cd app
     这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/
     这样就将apk文件拷贝出来了。
     将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,
阅读(5354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~