apk 的反编译

apk 的反编译
1.  得到 dex 文件
    apk 文件是zip 压缩的。
    windows 下,用winrar 可以直接打开apk 文件, 看到文件结构,并可看到一个.dex 文件, 用winrar 解压缩
    linux 下,可用unzip 来解压. 例如, 解压xxx.apk 到abc 目录 : unzip xxx.apk -d abc
2.  得到 jar 文件
    用dex2jar 可将dex 文件变成jar 文件。
       2.1: 下载工具。dex2jar-2.0.zip  // 目前是2.0
    它包含windows 及 linux 下的工具
    windows: dex2jar.bat classes.dex        // 就会生成一个classes.jar
    linux: d2j-dex2jar.sh classes.dex

    .jar 文件是class 的zip 压缩包, 用步骤1提到的工具可解压缩
3.  得到java 文件
    方法1: 用 jad 从class 得到 java 文件。 具体见前述文章
    方法2: 不用解压jar 文件, 用 JD gui 工具直接打开jar 文件

第二种方法: 下载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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值