13129761422 发表于 2018-6-5 15:00

另类的小白android破解 ”抓妖记”(绕过sdk去执行道具代码发放)

业务需求,公司的一款老游戏 抓妖记(16年的)需要解锁道具,没有源码只能逆向去破解,游戏已知的几个问题
1,游戏在国内无法初始化sdk ,调不出来支付界面。
2,游戏在华为等高版本的手机(p20 p10等一部分手机)上会有游戏兼容问题。载入make with unity后会蓝屏
(这里问一下不知有没有大神会解决这个问题)

这里开始破解:
首先介绍 用到的工具android killer (injectlog)这里不得不说这个工具真的太强大了,JEB 2.3.11 (2.2.7版本的打开这个游戏有点问题),这两个软件论坛都有就不发了android studio这个只是用来看日志信息的。
开始
把游戏拉到android killer ,在回编译,安装(看看有没有其他签名验证的问题)。同时用jeb吧游戏打开这个软件点一下解析,可以很清楚的看到java代码,还有很强大的反混淆和动态调试项目(这两个我还不会玩 哈哈!)可以清楚的看到只有一个mainacitivity类,由于我接触过这个sdk,这里不能用破解的三板斧 paysucess 支付成功 什么的 新版的也有 什么paysucess的回调接口,不过这个是旧版的,回调接口有些不一样。这个等等再说
首先用 injectlog工具在方法那里 打印方法名(论坛有使用方法)。在AndroidManifest.xml <application android:allowBackup="true" android:debuggable="true"......的debuggle改为true方便查看日志,(也可以利用android studio 进行动态调试),点击支付按钮查看 logcat里的日志信息。里面的sdk支付流程是init 初始化后再去调用pay方法,调出支付界面,然后就是paysucess等等支付接口了。这里有两个pay的方法,因为下面pay方法还会调用pay方法,所以得出的结论是点击支付按钮,执行第二个pay(里面有两个参数不能忽略),然后在执行第一个pay。我在两个pay方法打了两个log 只有第一个先执行的pay有打印log。,(上面两张pay的图是我处理过的,这个才是原版的)然后我们要绕过两个if里面的方法去直接执行else的方法,这里推荐使用goto 方法,然后我就在两个pay这里都打打了个log,果然回编译后我看到了两个自己的log,这是goto 绕过初始化init的方法,再去执行下一个pay的。到了第二个pay。到了处理第二个pay看到第二个pay,其中我们只有去执行其中mainacitivity.this...paysucess
那个方法就可以了,我看了看smail中,并没有很清晰的方法,但是这0,-1,-2,-3有没有觉得很萌很可爱,他的方法就是传两个参数进去,0是成功 其他都是失败的,还有一个就是puuid,这个是发放道具的参数,上面有说到过,所以再利用他的回调函数,把const/4 v1, 0x3

    iget-object v2, p0, Lcom/ezplay/zyj2_hw/hwgame/MainActivity;->puuid:Ljava/lang/String;

    invoke-virtual {p0, v1, v2}, Lcom/ezplay/zyj2_hw/hwgame/MainActivity;->payCallback(ILjava/lang/String;)V    paycallback 的0x3 改为0x0 就可以直接绕过前面一堆的代码了,因为我前面测试的时候发现,当第二个pay(方法是第一个执行)执行完了,它直接弹了个orther的提示框,所以直接执行他应该就是到了 paycallback的方法 参数应该是 -3,把它改成0后,他就直接执行0 puuid 这两个参数,跳转到发放代码。可能有的人会不理解,为什么改了0之后就可以直接绕过上面的判断,在java的代码来说,他确实在先执行判断最后再执行这个方法,但是在smail的语法中,他是先执行,再调到判断的,再通过:cond的方法再跳回来执行paycallback方法。教程到这里就结束了,打字不易,第一次发帖,内容有点乱,别见怪。!!

糖糖 发表于 2018-6-5 15:26

谢谢分享拿走了

我叫ADORE 发表于 2018-6-5 18:00

学习了谢谢分享

qmzz147 发表于 2018-6-5 18:00

谢谢楼主的技术分享~有你们真好

YCmING 发表于 2018-6-5 19:27

学习一下 感谢楼主

linclon 发表于 2018-6-5 19:55

可以可以,感谢分享

wzheng 发表于 2018-6-5 20:30

谢谢楼主的技术分享

yd131421 发表于 2018-6-5 20:41

gaowen9304 发表于 2018-6-5 15:18
谢谢分享

谢谢楼主的分享,过来学习了

HCJ 发表于 2018-6-5 21:45

谢谢分享

daimen007 发表于 2018-6-6 08:14

学习了,谢谢分享
页: [1] 2 3 4
查看完整版本: 另类的小白android破解 ”抓妖记”(绕过sdk去执行道具代码发放)