Android逆向之旅--龙之契约游戏钻石内购破解分析

今天得到了一个游戏样本进行分析,过程中遇到了一些困难,出于个人爱好对它进行了详细的分析和破解。游戏大致就是对游戏文件进行加密,对关键类进行动态释放。第一次分析加密逻辑是放到了加密的dex中,所以需要下面解密dex文件然后在进行后续操作。


一、解密第一个dex文件

首先游戏重签名后是进入不了游戏的。所以需要先分析释放dex,去除签名验证,下面开始分析:进入主activity的oncreate方法

640?wx_fmt=png


通过自己手动加log发现第一行代码调用执行就卡住了。我们进入方法内部看一下

640?wx_fmt=png


第一个调用的a方法:

640?wx_fmt=png

结合这两个方法可以看出来,就是获取classes.dex,然后打开assets里面的某个文件,读取写入到classes里面。这里的文件名就是str,下面开始分析这个文件名是什么,回到oncreate中:

640?wx_fmt=png


这里可以看出对字符串进行了加密。

640?wx_fmt=png

通过查看m.a方法可以看出对进行解密,这里我们直接把游戏的dex转成jar导入eclipse中。执行一下这个方法。

640?wx_fmt=png


可以看到返回结果是dx。在游戏的assets中也确实有这个文件。我们打开这个文件看一下

640?wx_fmt=png


640?wx_fmt=png

可以看出来是个dex文件,反编译之后:这里就明白了,是oncreate跳转到第一个a方法,然后再执行第二个a方法,第二个就是单纯的释放类。


640?wx_fmt=png

然后回到第一个跳转的a方法:

640?wx_fmt=png

这里有一个反射执行方法的操作,按照刚刚方法打打印出这个加密的文字(也就是类名)是什么

640?wx_fmt=png

这里就和我们刚刚解出来的dex对上了。我们看一下调用的vs方法:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值