吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 32450|回复: 147
收起左侧

[Web逆向] 羊了个羊 快速通关(已解决名片不显示问题 9.20)

  [复制链接]
jjjzw 发表于 2022-9-17 00:57
本帖最后由 jjjzw 于 2022-9-20 08:33 编辑

9.20解决不显示方法在文末

羊了个羊近日火爆,对于这种收割智商税的游戏,论坛大佬们给出了很多思路

游戏由2关组成,在开始游戏时会请求每关的基本信息(包括卡牌类型代码和卡牌组数),然后将3倍卡牌放入一个array中随机打乱,再放入地图指定位置,以达到随机关卡不给活路的目的(误

地图id为80001(第一关)和90016(第二关,每天不同)

文件结构如下:

文件结构

数据包结构:

数据包结构

目前已有的破解思路:

  1. 修改第二关的请求响应,将block内容改为和第一关一样(或改成同一种卡片)(来自本站羊了个羊修改关卡以及只留3卡片思路分析

  2. 修改第二关的请求响应,将blockTypeData改掉,最终生成了全白的图片(来自b站CheersUP主的思路,简化了替换内容)

  3. 获取t值,直接发送通关请求

  4. 无限获取道具

使用第二种方法进行测试:

使用Charles的rewrite功能,将响应中的内容替换掉

rewrite

blockTypeData改为clockTypeData,结果如图:

结果1

卡片全部变成了空白,轻松过关

使用第三种方法测试:

获取t值:随便找个请求拿到t

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXyNDkxNzcxNSwiZGVidWciOiIiLCJsYW5nIjoiIn0.vZVf1YuLOViM-tShvCM6mOKoEGZXnZhYzLRu5I9NFhM

发送请求:

https://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=59&rank_role=1&skin=1

from bs4 import Beautiful
import requests

t = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTQyNDM4ODQsIm5iZiI6MTY2MzE0MTY4NCwiaWF0IjoxNjYzMTM5ODg0LCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidciOiIiLC.vZVf1YuLOViM-tShvCM6mOKoEGZXnZhYzLRu5I9NFhM"

headers = {
  "t": t 
}

url = "https://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=40&rank_role=1&skin=1"

requests.get(url, headers)

这里我发送内容是通关时间40s,结果:

结果2

通关时间显示40秒,成功运行

由于不小心通了关,等明天再开游戏观察添加道具的接口了




9.18更新

今日游戏更新,上述方法二测试失败

通过抓包发现,开始游戏后的两次请求数据中,不再包含卡牌具体内容,因此修改失败

new

如图为第一关80001的数据,明显046ef1bab26e5b9bfe2473ded237b572是加密后的数据,但我们不关心具体内容

第二关9001884559a02920def9e5a3ddb921617de36

只要将这串字符改为第一关的就行,使用rewritemap local功能实现

mapping

再次开始游戏,此时第二关变为和第一关一样,顺利通关

result

本次更新加大了直接修改地图内容的难度(需要重新找文件修改,或阅读源码获取解密算法)但对于直接改响应/直接发送过关请求没有影响




9.20更新




今日羊了个羊再次更新,之前的方法可能都不太好使了

进入游戏,抓包,发现只剩下一个包

request

请求为:https://cat-match.easygame2021.com/sheep/v1/game/map_info_ex?matchType=3

查看响应内容:

response

data由两部分组成

  • map_md5
  • map_seed

map_seed是用于生成地图的种子,不清楚具体算法

map_md5很明显就是地图内容的md5加密,和昨天的加密一样,查看昨天的地图80001的加密数据,为046ef1bab26e5b9bfe2473ded237b572,和今天的map_md5[0]完全一致,那就将第二张图的数据也改为这个:

replace

进入游戏后完美实现将第二张图替换为第一张(与9.18结果一致),顺利通关

seccess



貌似破解通关后名片上不显示,朋友圈不显示


查看名片:

fail

发现未加入羊群,目前还不知道具体原因。查看名片后,找到数据包:

https://cat-match.easygame2021.com/sheep/v1/game/personal_info?

{
        "err_code": 0,
        "err_msg": "",
        "data": {
                "register_time": 1663161958,
                "avatar": "",
                "nick_name": "",
                "challenge": 23,
                "uid": 4210**23,
                "daily_count": 4,
                "topic_count": 0,
                "today_state": 2,
                "today_ts": 1663604857,
                "today_time": 37,
                "today_fail_count": 1,
                "skin": 16
        }
}

明显today_state的值是有问题的,因为通关时的接口(旧版本和新版本)均为rank_state=1,猜测1才是正常值

保存该响应,修改state为1,通过map local功能修改响应地址:

{
        "err_code": 0,
        "err_msg": "",
        "data": {
                "register_time": 1663161958,
                "avatar": "",
                "nick_name": "",
                "challenge": 23,
                "uid": 4210**23,
                "daily_count": 4,
                "topic_count": 0,
                "today_state": 1,
                "today_ts": 1663604857,
                "today_time": 37,
                "today_fail_count": 1,
                "skin": 16
        }
}

再次查看名片,名片成功出现了加入羊群(暂时只能自己看到)

add



通关无效解决办法



推测是否成功通关可能与map_md5有关,因此不碰map_md5,而是修改掉map_seed(修改该值不影响游戏开始,但影响卡牌的分布,卡牌会变得更加密集)

将响应修改为:

{
        "err_code": 0,
        "err_msg": "",
        "data": {
                "map_md5": ["046ef1bab26e5b9bfe2473ded237b572", "c1132aaca34fe95d20154aa4d5bfa826"],
                "map_seed": [0, 0, 0, 0]
        }
}

这样将会得到大量重复的卡牌:

change

成功通关后名片和朋友圈均显示!

免费评分

参与人数 25吾爱币 +18 热心值 +21 收起 理由
妈咪妈咪红 + 1 + 1 我很赞同!
moon1943 + 1 + 1 热心回复!
junjia215 + 1 + 1 内容详细 感谢分享
理想的海洋 + 2 + 1 20220921 上午八点 过关之后未加入羊群,又修复了
jimmyzp123 + 1 我很赞同!
_幻术 + 1 + 1 没用改完过关了在删除本地羊了个羊的文件一样是没过关状态
a51443226 + 1 + 1 什么都抓到了但是FD修改响应我不会了,我真菜
xiaoyaotan + 1 我很赞同!
有白云的日子。 + 1 感谢思路,实测结果:MD5和seed一起修改也可以,正常结算。
好学而知 + 1 + 1 热心回复!
tail88 + 1 + 1 试了下,通关1次。大神厉害
ghimi + 1 谢谢@Thanks!
烤奶少糖2 + 1 + 1 谢谢@Thanks!
Jerrywang + 1 我很赞同!
lff283 + 1 大佬牛皮,最后一张图真绝。就最后这张图看着顺眼很多
wenbo998 + 1 + 1 感谢提供思路,刚才看到mapseed就没想到改0
sharesharp + 1 9.20你把小程序删了,重新加载,可以继续游戏
李佑辰 + 1 用心讨论,共获提升!
独白~~ + 1 + 1 谢谢@Thanks!
2022xiaobaibai + 1 谢谢@Thanks!
914949 + 1 + 1 我很赞同!这个思路棒~
xpf123 + 1 我很赞同!
skiss + 1 + 1 谢谢@Thanks!
QianJXin + 1 谢谢@Thanks!
haoran66 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hanhai4 发表于 2022-9-17 01:20
大神,可以出一个简单的方便小白的一键工具不?
 楼主| jjjzw 发表于 2022-9-17 08:08
QianJXin 发表于 2022-9-17 01:49
楼主,第二种方法用HTTP Debugger Pro可以么?Charles抓不到。

可以的,可以参考另一篇帖子https://www.52pojie.cn/forum.php?mod=viewthread&tid=1688385
相当于重写了响应
print1985 发表于 2022-9-17 09:44
tear_light 发表于 2022-9-20 10:28
http catcher改seed:

{
  "rules" : [
    {
      "action" : "body",
      "matchField" : "map_id",
      "field" : "map_id",
      "value" : "\"map_seed\":\\[0,0,0,0\\]",
      "matchValue" : "\"map_seed\":\\[.*\\]",
      "destiontion" : "response",
      "isRegex" : true
    }
  ],
  "enabled" : true,
  "name" : "羊",
  "description" : "",
  "locations" : [
    {
      "method" : "GET",
      "scheme" : "https",
      "enabled" : true,
      "port" : 0,
      "query" : "matchType=3",
      "host" : "cat-match.easygame2021.com",
      "path" : "\/sheep\/v1\/game\/map_info_ex"
    }
  ]
}
88886 发表于 2022-9-17 01:05
不错啊666
QianJXin 发表于 2022-9-17 01:49
楼主,第二种方法用HTTP Debugger Pro可以么?Charles抓不到。
韩烨 发表于 2022-9-17 02:22
大神真牛啊
xuegaoxiansen 发表于 2022-9-17 02:43
第三种方法是在什么软件里运行的呢
头像被屏蔽
tl;dr 发表于 2022-9-17 06:45
提示: 作者被禁止或删除 内容自动屏蔽
89684828 发表于 2022-9-17 07:33
感谢楼主分享,支持一下!
 楼主| jjjzw 发表于 2022-9-17 08:10
xuegaoxiansen 发表于 2022-9-17 02:43
第三种方法是在什么软件里运行的呢

只需要python环境就可以
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表