反编译 Android APK
来源:互联网 发布:数据保护线缠绕视频 编辑:程序博客网 时间:2024/05/17 18:26
Android 应用发布的格式为Apk 格式,有时候拿到apk 文件后想看看里面的代码逻辑和资源文件,这时就需要反编译。Apk 包里有两类文件,一类是class文件,另一类是资源文件,需要两类不同的反编译工具进行反编译。
1.class 文件的反编译。
一个.apk 文件实际文件格式是什么呢? 可以用file 命令来看一下:
$ file Alerter.apk
Alerter.apk: Zip archive data, at least v2.0 to extract
所以实际上是一个zip包,所以把它改成*.zip 便可以解压,解压之后会得到一个classes.dex 的文件,这个文件便是Dalvik VM 运行时执行的文件,包含了所有的classes。反编译这个文件便可以看到class的source code. 需要两个工具。
dex2jar 和 JD-GUI
将得到的 dex2jar-0.0.7-SNAPSHOT.zip 解压,将classes.dex 拷贝到解压目录(dex2jar.bat 所在目录),进到dex2jar.bat所在目录,运行 :
dex2jar classes.dex ( for windows)
便可以得到 classes.dex.dex2jar.jar ,运行 JD-GUI 便可以 打开此 jar 包 看到 反编译出来的 source code.
2.反编译资源文件。
反编译资源文件的时候需要 aapt 和apktool
从这里 http://code.google.com/p/android-apktool/downloads/list
下载 apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2 (for windows)
然后将两个包解压到同一个文件夹下,可以看到 aapt.exe apktool.bat 和apktool.jar 三个文件 ,进到解压目录,运行:
apktool d *.apk [ dir] / /dir 参数可以不写(apktool 会自己创建一个),使用这个参数的话写一个不存在的目录(此命令会创建)
或者 apktool d -f *.apk dir
就可以得到所有的资源文件 : AndroidManifest.xml res asserts smali
3. 利用aapt 和apktool 工具可以完成对资源文件修改后重新打包成apk
apktool b resource_dir
打包完会生成两个新目录 build 和 dist,新的apk 在 dist 目录。
- 反编译Android apk文件
- 反编译ANDROID APK文件
- Android APK 反编译
- Android 反编译 .apk 文件
- 反编译android apk
- android中apk反编译
- 反编译Android apk
- android中apk反编译
- Android APK反编译
- android apk反编译
- android APK反编译
- Android APK反编译
- android apk反编译
- Android APK反编译
- Android 反编译 .apk 文件
- Android APK反编译
- Android APK反编译
- Android APK反编译
- rails开发利器:简单的push服务器 faye
- ocr 相关网站
- struts2.1.6 action 01
- JSTL核心标签
- 被误解的C++
- 反编译 Android APK
- JQuery常用函数
- 复杂链表的复制
- instanceof 性能
- Smarty变量的用法及效果
- 学习ISA——《ISA Server 2004概览》
- (android实战)创建查看试卷答案功能(类似于疯狂小鸟的选
- 打包标签库
- EBMIDE——数据库管理