反编译apk经历

因为女朋友想要破解某游戏,粗略学习了一下记录一下

工具

dex2jar-2.0   ————反编译class.dex文件为jar包

jd-gui           ————查看jar包文件

操作流程

1.把你的apk后缀名改为zip,然后解压后,就会发现有个classes.dex,这里面就是java源码了。
2.找到dex2jar-2.0目录,现在把dex文件拷贝到该目录下。
3.cmd窗口进入dex2jar-2.0目录,然后输入命令:

d2j-dex2jar.bat classes.dex

回车,如下图:

 

 4.完成后我们在dex2jar-2.0目录下就会多了个classes-dex2jar.jar文件,这个就是我们需要的jar文件

5.使用jd-gui工具打开jar包,查看类信息

常见问题

1.not support version

打开dex2jar-2.0\lib目录,将dex-reader-2.0.jar或者dex-reader-api-2.0.jar丢进jd-gui工具中看看源码如下:

// 构造方法中找到报错点
public DexFileReader(ByteBuffer in){
        ......
        int version = in.getInt() & 0xFFFFFF;
        if ((version != 3486512) && (version != 3552048)) {
          throw new DexException("not support version.");
        }
        skip(in, 32);
        ......
    }
    .....
}

// 支持的版本定义
private static final int MAGIC_035 = 3486512;
private static final int MAGIC_036 = 3552048;

意味着dex2jar-2.0工具只支持035和036版本协议!!!

使用notepad++文件浏览工具(任何能打开文件的工具都可以,例如记事本...)打开dex文件,修改版本信息037为036或者035,然后保存文件即可,再使用反编指令

2.代码混淆

反编译出来的代码可能存在代码混淆等加密方法,目前还没有找到解法,希望懂得大佬来教一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值