神庙逃亡破解分析


分析目标:破解神庙逃亡内购

一.神庙逃亡网络验证破解
首先用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就可以无限的刷金币和钻石了呢? 

同样只是处于研究目录, 破解版就不放出来了


 





原文地址:https://www.cnblogs.com/bingghost/p/5828078.html