“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情”
最近这个 "割韭菜" 的小游戏突然爆火,各种占热手,收割的不是钱财,是玩家 宝贵的注意力(时间)。
把你的阳寿,转换为他们的广告收入,那种还转发到各种群聊的童鞋,真·被人卖了还帮人数钱~
随手点开别人分享的小程序,简单体验了一下 (就玩了第一关),这TM不就是 升级版的消消乐 吗?网上有很多人提到抄袭的手游 《3 Tiles》,2333,不能说十分相似,只能说一模一样了~
游戏质量和可玩性不咋滴,营销 手段倒是一套套,贴个群里别人发的复盘图 (出处不详,欢迎补充):
各种公号文章、视频刷屏,其中有一个说到某宝代练/辅助引起我的兴趣,TM该不会真有人买吧?搜一下:
2333,还真有啊,只能说有钱真好,其实网上的 辅助早已泛滥,比如我的历史好友排行榜:
兜了一圈,发现所谓的 速通 本质原理都是 模拟请求,游戏在只有在通关时才会请求接口,中途没有其他请求。所以只需 抓包 找到对应接口,然后拼接参数就OK了。
简单提提各端的抓包工具,就不演示基本的抓包操作了:
- PC:Fidder、Charles等;
- iPhone (基本要钱):Stream、Http Cather、Storm sniffer、Quanx、Surge等;
- Android:Packet Capture、tcpdump等;
我也懒得玩第二关,然后自己抓了,通关接口网上都发烂了:
# 加入羊群
finish_sheep_api = "https://xxx/sheep/v1/game/game_over"
# 话题通关
finish_topic_api = "https://xxx/sheep/v1/game/topic_game_over"
都是Get请求,参数有这些:
- rank_score → 随便填,比如1
- rank_state → 随便填,比如1
- rank_time → 通关时间,随便写,比如500,单位不知道是秒还是毫秒;
- rank_role → 填1
- skin → 填1
- t → 你的用户token
最核心的就是这个Token的获取,抓包对于普通用户学习成本有点高,看到有一个EA4写的,直接输入 UID 自动获取Token,然后直接加入羊群。安装后一打开,张口就是:定位、读取相册、联系人的权限,你想干嘛???
抓包发现,其实就是调用了两个接口 (截止发文,接口好像已经发生变动~):
https://xxx/sheep/v1/game/user_info?uid=用户id
https://xxx/sheep/v1/user/login_oppo?uid=用户id&nick_name=xxx&avatar=xxx&sex=1
所以就是拿到Token,然后拼接参数模拟请求就好了,直接用requests试试水:
import requests
# 加入羊群
finish_sheep_api = "https://xxx/sheep/v1/game/game_over"
# 话题通关
finish_topic_api = "https://xxx/sheep/v1/game/topic_game_over"
headers = {
'Host': 'xxx',
'User-Agent': 'Mozilla/5.0 (Linux; Android 10; Mi MIX 2S Build/QQ3A.200805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/4313 MMWEBSDK/20220805 Mobile Safari/537.36 MMWEBID/8067 MicroMessenger/8.0.27.2220(0x28001B59) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android',
't': 'xxx'
}
def auto_run():
finish_sheep_resp = requests.get(finish_sheep_api, headers=headers, params=params)
if finish_sheep_resp:
print("请求:%s" % finish_sheep_resp.url)
print(finish_sheep_resp.text)
finish_topic_resp = requests.get(finish_sheep_api, headers=headers, params=params)
if finish_topic_resp:
print("请求:%s" % finish_topic_resp.url)
print(finish_topic_resp.text)
if __name__ == '__main__':
auto_run()
运行结果:
可以,加循环试了一下,发现:接口并没有做防刷,甚至连代理ip也不需要,那就刷得更狠一点了。
requests不支持并发,直接换成aiohttp,意思意思刷个10w次吧,改动下代码:
import asyncio
import aiohttp
finish_sheep_api = "https://xxx/sheep/v1/game/game_over"
finish_topic_api = "https://xxx/sheep/v1/game/topic_game_over"
headers = {
'Host': 'xxx',
'User-Agent': 'xxx',
't': 'xxx'
}
params = {
'rank_score': '1',
'rank_state': '1',
'rank_time': '500',
'rank_role': '1',
'skin': '1',
}
tasks = []
async def speed_run(count, sem):
async with sem:
async with aiohttp.ClientSession() as session:
try:
async with session.get(finish_sheep_api, headers=headers, params=params):
print("加入羊群%d次" % count)
async with session.get(finish_topic_api, headers=headers, params=params):
print("完成话题%d次" % count)
except Exception as e:
print(e)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
semaphore = asyncio.Semaphore(500) # 控制并发量为500
for i in range(1, 100000):
tasks.append(asyncio.ensure_future(speed_run(i, semaphore)))
result = loop.run_until_complete(asyncio.gather(*tasks))
运行效果如下:
Tips:为什么要控制并发量为500?asyncio内部用到了select,而select就是系统打开文件数是有限度的,操作系统的限制,linux打开文件的最大数默认是1024,windows默认是509,超过了这个值,程序就开始报错:ValueError: too many file descriptors in select。
非常简单,当然你甚至不需要写代码,直接用Apifox、Postman直接模拟请求也可,原理都一样,就是换个工具而已~
除此之外,还有一种辅助是利用 代理软件 中间人拦截原理,对返回数据进行篡改,比如:
- 拦截好友历史排行版,直接改自己的分数;
- 无限道具;
- 重复进入第一关;
- 全皮肤等;
还有一种是 PC微信修改文件 的玩法,如:打开 微信目录/Applet/c970a9结尾/usr/gamecaches/resources,修改大小为2kb的json文件,替换为下述内容:
[1,0,0,[["cc.JsonAsset",["_name","json"],1]],[[0,0,1,3]],[[0,"levelConfigData",{"dailyLevel":[[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001],[80001,80001]],"topicLevel":[[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017],[10017,10017]]}]],0,0,[],[],[]]
保存后再次打开羊了个羊,会重复四次第一关,线索来源:angzhi-1/yanglegeyang
以上就是这款游戏辅助的几种思路,对于这种行为,官方都懒得管,毕竟是快消品,大家一起刷,反而还能再维持下热度,23333。
听哥一句劝,珍爱生命,远离XX游戏~