神庙逃亡破解分析
分析目标:破解神庙逃亡内购
一.神庙逃亡网络验证破解
首先用Android Killer载入, 然后编译,运行,发现提示盗版软件
继续搜索dialog_initconfig_msg
a方法show弹出了警告框,其主要是这个arg4.d为校验值
向上层追踪来源于这里赋值,但是这个只没法做交叉引用,只好用堆栈法来进行跟踪了
追踪得到这些信息
一层层耐心的向上层跟踪关键点
原来是发了包,把程序的签名发送过去了, 我们来抓包看看
配置好burpsuite代理和手机端代理
抓到包信息如下:(记住是没有修改的APK)
看出来他post这么一些信息,看起来有点乱
%7B%22appkey%22%3A%2275ed8c70047d3d140c7a%22%2C%22sign%22%3A%223876126041f65216720df7bbb14961a3%22%7D
我们可以用burpsuite的smart decode解码一下很典型的json文件格式
{"appkey":"75ed8c70047d3d140c7a","sign":"3876126041f65216720df7bbb14961a3"}
典型的签名校验
1. 我们修改函数让他总是返回正确的签名和apkkey
2. 我们拦截包,每次发送指定的包都给他想要的包
我们给他改掉让他每次返回都返回正确的签名
com.idreamsky.lib.g.b p ()
我们直接修改该函数,在开头给他返回正确的签名
此时我们发现绕过签名校验,成功的进入了游戏
二. 内购破解
内购界面
点取消,弹出了用户取消按钮
去搜索一下这个字符串 用户取消操作
而且无法向上层回溯,同样上栈回溯法
插入打印堆栈
有效的信息就这2个
给他把onUserOperCancel
然后重编译运行
这是上面传递的String arg4的值,打印出来如下
看起来像是商品ID,那么我们是不是插入代码,传递参数让他调用onBillingSuccess就可以无限的刷金币和钻石了呢?
同样只是处于研究目录, 破解版就不放出来了