本文主要介绍如何逆向一个Android的APK应用程序,本文提供的方法仅供研究学习之用。

本文需要用到的工具有

jdk 这个用于搭建java运行环境

AXMLPrinter2.jar 这个用于逆向.xml文件

baksmali.jar 这个用于逆向classex.dex文件

由于Android.apk文件实际上就是一个zip文件可以直接用winrar打开

用rar打开之后 我们可以看到该文件实际上是一个zip包 里面包含了META-INF文件夹,这个文件夹是用于保存签名文件,确保包的完整性的

res文件夹下就是apk所要用的资源文件,都是原封不动地保存,我们可以直接提取出来,做汉化时就可以直接阅读string文件然后进行修改

AndroidManifest.xml文件则是编译过后的一个配置文件,用于声明程序中所包含的activity,service以及程序所具有的能力,也就是权限。resources.arsc则是编译过后的一个资源说明文件,而我们要关注的主要是classes.dex 。我们编写的Android程序,在源程序里的所有.java的文件,最终都编译到这样1个.dex文件当中,在Android手机上的dalvik虚拟机上执行。

首先,我们介绍如何逆向一个.xml文件

由于apk包里的xml文件我们直接用记事本打开还是有一些乱码

所以需要我们还原才能更好的看出

这里需要用到AXMLPrinter2.jar 工具

具体的则是打开命令行 我们以AndroidManifest.xml为例,输入如下命令

java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt

有兴趣的也可以写成一个.bat的脚本,方便执行

转载自:http://blog.csdn.net/Zengyangtech/archive/2010/08/12/5807517.aspx

更多相关文章

  1. Android中扫描多媒体文件操作详解
  2. Android 根文件系统启动过程。
  3. android 下载网络pdf文件后并显示
  4. Android 上传头像(文件)到服务器
  5. Android代码混淆配置(Proguard文件解析)
  6. 升级Android SDK后ADT找不到adb.exe文件的解决办法
  7. android 文件系统分析
  8. android下解析xml文件遇到中文问题
  9. Android开发5――文件读写

随机推荐

  1. Android(安卓)实现手机震动功能
  2. Android自学笔记之短信发送器
  3. Android(安卓)使用decodeFile方法加载手
  4. android 代码中设置字体大小
  5. 打包错误:`Error:Execution failed for ta
  6. Android(安卓)获取通讯录联系人
  7. android 强制开启 GPS
  8. 多线程实现android更新进度条
  9. android View根据自己获取焦点的情况执行
  10. Type View requires API level 14 (curre