apk 的反编译

apk 的反编译
1.  得到 dex 文件
    用winrar 可以直接打开apk 文件, 看到文件结构,并可看到一个.dex 文件, 用winrar 解压缩
2.  得到 jar 文件
    用dex2jar 可将dex 文件变成jar 文件。
       2.1: 下载工具。dex2jar-0.0.9.13.zip
    dex2jar.bat classes.dex        // 就会生成一个classes.jar
    用winrar 可以解开得到所有class 文件
3.  得到java 文件
    方法1: 用 jad 从class 得到 java 文件。 具体见前述文章
    方法2: 不用解压jar 文件, 用 JD gui 工具直接打开jar 文件

2.2: 下载apktool,
    我的是apktool1.5.2.tar.bz2    2.4 MB,  解压后是一个jar 文件
   apktool-install-windows-r05-ibot.tar.bz2   380 KB, 解压后有一个bat 和 exe 文件
   把两个文件解压后放在一起。 运行apktool 可以看到帮助

apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC

在解压后的文件夹中可以得到apk的xml配置文件

将“得到的class文件和得到的xml文件组合成一个android工程,即可得到完整的apk源码
问:
编译后的.class文件名中的$是什么意思
答:
存在匿名内部类编译后就出现这种情况
非匿名内部类
D:\gmate\Gmate-android2.0-1.9.14_dex2jar\com\simo\db\Tableinfo$account_table.class
D:\gmate\Gmate-android2.0-1.9.14_dex2jar\com\simo\db\Tableinfo$attachment_table.class
匿名内部类
D:\gmate\Gmate-android2.0-1.9.14_dex2jar\com\simo\phone\DialingCall$1.class
D:\gmate\Gmate-android2.0-1.9.14_dex2jar\com\simo\phone\DialingCall$2.class

你可能感兴趣的:(apk 的反编译)