先说一下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是个很好的选择。 下载地址: http://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q= 使用方法: java –jar AXMLPrinter2.jar capture.xml > test.xml 执行后,将标准输出capture.xml到test.xml文件。
下面我们开始反编译代码部分。反编译代码需要两个工具:
dex2jar的地址:http://code.google.com/p/dex2jar/ 下载后解压,dex2jar 的命令使用: dex2jar.sh classes.dex 命令执行后,会在该文件夹下生成一个classes.dex.dex2jar.jar的文件。 jd-gui分windows,mac,linux三个版本。我们下载对应版本。 jd-gui的地址:http://java.decompiler./?q=jdgui 下载后解压,点执行文件。把刚才dex2jar生成的jar文件拖入jd_gui界面即可生成源代码。 |
|