高中生

- 金币
- 254
- 好评
- 37
- 贡献
- 0

|
本帖最后由 Rarcher 于 2020-12-30 13:19 编辑
咕咕咕,我大鸽子回来了!(终于记起了mt的密码)
本来是想做slcb的内购,但暂时还没搞定CA证书问题,就先破一个抽卡小游戏吧(沉迷抽卡.jpg)
软件名 月兔历险记
渠道 taptap
首先拿到包之后老规矩 0x2328大法,支付后没任何提示,也没有到账。这个时候我们就可以想着去抓个包看看
很明显 payquery 是在向服务器验证订单,我们进去看看返回了什么
{"msg":"查询不到该订单信息","status":400}
很不错,我们试着吧status改成200
很不幸,还是没到账,这个时候我们就可以跟着请求url去看看代码是什么样子
我们仔细分析一下流程,check方法是从服务器获取一段订单校验的json,传给了ParseCheckResult方法,ParseCheckResult首先检查status是否为200,不是200则支付失败,如果是200,那么取出里面的data属性,又是一个新的json,里面有orderstate和supplynum两个值。很明显,我们缺少了data属性,在构建json的时候抛异常了,那么问题就简单了,我们把返回值改成
{msg:支付成功,status:200,data:{orderState:1,supplyNum:1}}
支付成功!
既然我们已经知道了网络请求的流程,那么我们就可以把支付成功的代码校验放进返回结果,服务器确认订单的返回值指向我们自己的结果。就像这样
同样是成功的
==============更新==========
我的疏忽,还有一个hook点忘了说,在Qpysingle类中,将下图中的11改成10即可
这样:
小问题:刚才我们看到了json返回的data字段有state和supplynum两个值,state不用说肯定是支付状态。那么为什么我们会选择1而不是true或者200呢,supplynum我们改999是不是一次就返回了999件同样的商品呢。这两个小问题就留给读者自己去逆向分析咯,我们评论区见
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
-
查看全部评分
总评分:好评 +1
金币 +2
|