apk反编译(转)
转http://bbs.hiapk.com/thread-1897009-1-1.html
《android-apktool》软件软件可以访问它的主页http://code.google.com/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。 apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker 重新打包 apktool b "C:\LiveWallpapersPicker" 反编译dex获取Java源代码 Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具:dex2jar,下载地址:http://code.google.com/p/dex2jar/。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过jad工具把jar文件反编译成Java源文件,jd-gui下载地址: http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip 。 详细步骤: 解压apk文件,直接拖拽(rar解压软件),找到classes.dex文件 在cmd下进入dex2jar.bat所在路径, 然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称(classes上面解压得到), 如:dex2jar.bat D:\classes.dex; 这样会生成一个jar文件,然后用jd-gui工具将jar文件反编译成java文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了。 Android DEX反汇编器 baksmali2010-10-31 http://code.google.com/p/smali/downloads/list 将需要反汇编的classes.dex和 baksmali-1.2.4.jar放到同一个目录下,然后执行 java -jar baksmali-1.2.4.jar -o classout/ classes.dex 就将classes.dex的内容 反汇编到 classout目录之下了 baksmali有几个重要的选项 -x,–deodex 可以对针对特定平台优化过的dex文件,也就是odex文件进行反汇编, 比如 java -jar baksmali-1.2.6.jar -x Calculator.odex odex文件依赖于生成它时的 BOOTCLASSPATH目录下的所有文件,在odex里存储着所有依赖着的文件的checksum信息,以确保在虚拟机中加载时,也能加载匹配的依赖文件 BOOTCLASSPATH 就是当主jar/apk加载是, 同时需要加载的jars/apk列表 一般的Android系统, BOOTCLASSPATH 有这个5个jars core.jar, ext.jar, framework.jar, android.policy.jar 以及 services.jar 它们都能在 /system/framework 目录下找到 对于Layout文件,也可以转 java -jar AXMLPrinter2.jar AndroidManifest.xml > Android.txt |