代码改变世界

Android APK反编译

2012-01-17 17:00  爱研究源码的javaer  阅读(510)  评论(0编辑  收藏  举报

android apk包可以反编译,但是多数应用程序包都混淆过代码。

一. 下载dex2jar,将apk中的classes.dex转换成jar文件。详细步骤如下:

1. 将apk文件后缀改为zip文件,解压后得到其中的classes.dex(java文件编译再通过dx工具打包而成的)。

2. 解压下载的dex2jar,将classes.dex文件复制到dex2jar.bat所在目录,打开命令行窗口定位到dex2jar.bat目录。

运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar文件。

二. 下载JD-GUI工具,反编译Jar包的源代码,可以直接查看

运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码。

三.反编译apk中的图片,xml配置,语言资源等文件。

这次用到的是apktool,下载apktool1.4.1.tar.bz2apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)

将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar

在命令行窗口中定位到apktool.bat文件,运行如下命令:apktool d C:\*.apk C:\*文件夹,命令行解释:apktool d

[apk文件 ] [输出文件夹],反编译的文件一定要放到C盘的根目录下。

四. 将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可.

打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:

build

dist

其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下。

参考:csdn博客