首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

沉迷微信“跳一跳”不能自拔?

今天你“跳”了吗?

最近,微信小程序“跳一跳”刷遍了盆友圈,基于微信海量用户的基础,加上好友排名、群排名等社交因素的助力,这款小游戏迅速席卷微信用户圈。

小游戏中每个盒子元素也非常贴近用户的生活,例如红包、魔方、表情包、快递包裹、闹钟等,而且闹钟的时间显示是实时的,细节的设置大大增加了游戏的趣味性。

可是有竞争的地方就有人停不下来,看着好友排名暗暗发力,我就不信今儿跳不到250!

那么好好读接下来的内容吧。

高分攻略

基础版

1、连续跳中心点,可以+2、+4、+6、+8……

2、跳到音乐盒停一会儿,会播放音乐,并且加30分;

3、跳到便利店停一会儿,便利店会开门,而且额外加15分;

4、跳到魔方停一会儿,魔方会旋转修正,并且加10分;

5、跳到井盖停留一会,会有冲水的声音,并且加5分。

为了控制按压盒子的力度,你可以在心里按自己的节奏默念数字,最短距离跳,次短距离1跳,接着1,2跳,最长距离1,2,3跳,试几次就可以找到轻重力度了。

开挂版1

此版本原理在于通过修改小程序中的得分记录直接作弊。是的,这是一种作弊行为,并没有经过真正的游戏过程。

跳一跳的游戏分数数据被记录在服务器上,这里就存在着这样一个漏洞,如果知道数据的加密方式,获取到它原有的包的格式设置,那么仿照这个包的格式修改其中的内容,就可以改分数。

这里需要欺骗服务的一个关键就在于获取到这个session_id,也就是服务器判断用户身份的凭证,另一方面微信在公众号平台的第三方信息管理那边给出了它们的通信加密方式是AES,那么再将数据经过AES加密传给服务器,那就达到了欺骗服务器修改游戏记录数据的目的。

所以找到对应于你自己的那个唯一id,修改这个id下对应的score,接着你在排行榜上的分数就更新了。

高分攻略

当然这并不是什么光明正大的方法,就好比你知道教务系统的后台网址直接黑进去修改了自己的成绩,一下子学渣变学霸,没变的是你自己,变了的只是大家看到的分数。作弊可耻,游戏里大家可以试试了解技术的力量,也让我们明白这是把双刃剑。

“正义”终将战胜“邪恶”,设置太高的分数会被微信清除刷分记录~

向上滑动阅览代码

import requests

import json

import timefrom Crypto.Cipher

import AES

import base64

action_data = {

"score": 10086,

"times": 666,

"game_data": "{}"

}

session_id = "5TrXoE7IXtM/Nr7vITnbU9bmR53VH0u8RkVnm6m/Fezg=="

aes_key = session_id[0:16]

aes_iv = aes_key

cryptor = AES.new(aes_key, AES.MODE_CBC, aes_iv)

str_action_data = json.dumps(action_data).encode("utf-8")

print("json_str_action_data ", str_action_data)

#Pkcs7

length = 16 - (len(str_action_data) % 16)

str_action_data += bytes([length])*length

cipher_action_data = base64.b64encode(cryptor.encrypt(str_action_data)).decode("utf-8")

print("action_data ", cipher_action_data)

post_data = {

"base_req": {

"session_id": session_id,

"fast": 1,

},

"action_data": cipher_action_data}

headers = {

"charset": "utf-8",

"Accept-Encoding": "gzip",

"referer": "https://servicewechat.com/wx7c8d593b2c3a7703/3/page-frame.html",

"content-type": "application/json",

"User-Agent": "MicroMessenger/6.6.1.1200(0x26060130) NetType/WIFI Language/zh_CN",

"Content-Length": "0",

"Host": "mp.weixin.qq.com",

"Connection": "Keep-Alive"

}

url = "https://mp.weixin.qq.com/wxagame/wxagame_settlement"

response = requests.post(url, json=post_data, headers=headers)

print(json.loads(response.text))

以上代码来源:https://zhuanlan.zhihu.com/p/32473340

代码中的session_id,可以用fiddler抓取。安装fiddler的证书来抓小程序的https包,手机端设置代理,具体可以百度。抓到的包以wxagame开头的,双击该链接会打开json详细内容,找到session_id复制下来替换到代码中即可。

这个过程中涉及到fiddler抓取HTTPS包,python爬虫以及用到的几个库的安装,权当学习。刷分虽爽,不宜贪高哦~

高分攻略

外挂版2

以上作弊方法是基于结果的方法,那么有没有基于过程的方法呢?例如能否测量出两个盒子之间的精确距离以及对应所需要的按压时间,那么就可以实现精确的跳跃。这种作弊方式在于努力提高学习成果考到更好的分数而不是直接修改教务系统的成绩。

搜了一下发现果真处处有大神,同样在知乎上找到了这一基于过程的方法实现。

以上方法详见知友的专栏文章:

https://zhuanlan.zhihu.com/p/32452473

所谓邪不压正~该微信号跳一跳记录已被清0,而且新的分数只有自己可见,别人都看不到了。。这就是作弊的下场哈哈哈,引以为戒~

反作弊

那么对于反作弊,应该考虑哪些因素呢?我们也可以分为结果和过程两个方向来考虑。

首先,从结果也就是排名和分数来考虑,可以根据用户的不同分数出现的次数、频率来判断,如果短时间内得分多次改变那么可以认为是作弊情况。

再者,从过程也就是跳一跳的游戏经过来考虑,根据相应分数所需要的操作时间和操作次数,可以设定一个范围,如果时间很短就得到高分那么是作弊,或者跳跃次数很少却得到高分也是作弊。这就需要对用户的操作过程进行埋点,记录其按压的时间、次数等,通过数据来发现异常。

以上我们围观了一场作弊以及反作弊的过程。对于“跳一跳”这款小游戏,你有怎样的思考呢?

首先这是一个小程序,之前小程序推出前已经经过造势,很多人认为会大火,甚至有人认为这种随用随走的轻应用会对手机App市场造成一定的冲击。“小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。小程序能够实现消息通知、线下扫码、公众号关联等七大功能。其中,通过公众号关联,用户可以实现公众号与小程序之间相互跳转。

但当小程序于2017年1月9日0点正式登场时,似乎并没有引起预想中的火爆效果。这么“千呼万唤始出来”的一项应用,难道要面临刚出生就衰亡的命运吗?这一年来小程序经历着它的初生及成长。

直到“跳一跳”的出现,将小游戏以小程序的形式推出,不得不说为小程序的发展带来了生机:

首先,更多的用户通过“跳一跳 ”对小程序有了直观的接触和感受。

其次,下拉微信首页聊天列表,用户之前使用过的小程序会出现在列表顶端,这无疑是一种用户到达小程序的较短路径,增加了小程序的曝光率。

文中两种方法均来自知乎的专栏文章,非本人原创,长按链接复制到浏览器可以直接查看。

感谢你耐心读完了,欢迎留言提出你的建议和意见。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171231G006RL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券