Android的dex文件反编译

来源:互联网 发布:照片卡通化软件 编辑:程序博客网 时间:2024/06/05 18:30

apk文件实际是一个
zip压缩包

AndroidManifest.xml是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息
java -jar AXMLPrinter2.jar AndroidManifest.xml
META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。

Android模拟器中提供了一个dex文件的反编译工具dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb
push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex。

(在模拟器环境下,使用电脑执行AndroidDebugBridge(adb)工具可以操作LinuxShell,也可实现与模拟器下adbd程序之间的通信。)

目前在网上能找到的另一个dex文件的反编译工具是Dedexer。Dedexer可以读取dex格式的文件,生成一种类似于汇编语言的输出。

下载ddx1.5.zip后,解压缩会产生一个dedexer目录,其中包含build.xml文件。我们需要根据本机的环境配置build.xml的内容

环境配置好之后可以开始编译了。当然要保证你已经安装好了ant编译工具

如何使用ddx呢:
java -jar ddx.jar -d <反编译文件存放目录> <dex文件>

How to compile
You are encouraged to extend the tool, there is a lot to do! In order to compile dedexer, you need JUnit 4.5. There are no particular restrictions on the Java environment, JDK 1.5.0 and JDK 6 were tested.

Download ddx.zip file, edit the build.xml and update the home and junit-home properties to reflect the layout of your file system. Then you can build dedexer by invoking ant. The "ant junit" command runs the unit tests too.

最后只能得到ddx文件,进行分析阅读。