微信小游戏破解(1)之《我要当皇上》

前两天一朋友问我:你有我要当皇上外挂到~仙·无上皇~吗?(鉴于之前我帮其整过微信跳一跳小游戏的外挂,其实也就是安装脚本自动跳而已)。起初我并没有在意,待我工作忙完之后才想起此事,于是乎就开启了破解之路!

不墨迹,先上张截图如下:

这是我破解之后的界面,数据全是满的,朋友圈排行榜绝逼第一,没有之一!

下面说下我的破解之路....

一开始当然是尝试抓包啦,做过微信小程序的都知道里面的请求肯定都是https的,这是微信官方规定的。那只好找个工具抓包喽,我的是windows电脑使用Fiddler抓包,不会抓包的童鞋点戳这里--fiddler抓包教程。(如果遇到手机安装不上证书的问题,可尝试更换一部手机试试,我的小米5X就安装不上(后来得知需要这样操作才能安装上:设置 > 更多设置(系统和设备) > 系统安全 > 从存储设备(SD卡)安装),后来换了华为荣耀9就好了)

成功抓包之后你进入游戏的时候会发现这个接口:https://h5.chiguawan.com/Emperor/user/saveUserData

一看名字就知道是保存数据的!也就是修改数据库的!!点进去一看,WTF!!!明文???

这就舒服了啊,没加密的接口不就随便改喽,哈哈哈~

这是我抓到的数据:

{
	"saveTime": 1545095956532,//保存时间
	"coin": "1e+35",//金币数量,可修改
	"diamon": 750,//钻石数量,不可修改
	"shopLevel": 74,//对朋友圈可见的等级!这个最重要,你想当第一修改这个就行了
	"isNewPlayer": false,
	"speedup": 1,
	"upStartTime": 1545095955532,
	"loginDays": 2,
	"loginRewardDays": 2,
	"lastLoginTime": 1545094960145,
	"guideStep": 4,
	"friendDraw": 0,
	"shareCoinNum": 0,
	"shareDiamonNum": 0,
	"luckyCount": 0,
	"luckyShareCount": 0,
	"luckyUpTime": 0,
	"dbVersion": 7032,//数据库版本,经测试每次提交这个接口的时候这个参数每次都会变大
	"version": "1.2.2",
	"slots": [{//这个数组就是用于展示首页的列表,就是有几个太上皇的那个
		"id": 9,//等级
		"pos": 0//位置
	}, {
		"id": 8,
		"pos": 1
	}, {
		"id": 7,
		"pos": 2
	}, {
		"id": 6,
		"pos": 3
	}, {
		"id": 5,
		"pos": 4
	}, {
		"id": 4,
		"pos": 5
	}, {
		"id": 3,
		"pos": 6
	}, {
		"id": 2,
		"pos": 7
	}, {
		"id": 1,
		"pos": 8
	}],
	"items": [{
		"id": 1,
		"buyUnlock": 1,
		"diamonUnlock": 1,
		"coinUnlock": 1,
		"coinCount": 43,
		"diamonCount": 0
	}, {
		"id": 2,
		"buyUnlock": 1,
		"diamonUnlock": 1,
		"coinUnlock": 1,
		"coinCount": 242,
		"diamonCount": 0
	}],
	"shareGrop": [],
	"isFly": 0,
	"userid": "手动保密",
	"openId": "手动保密"
}

很显然,我们只要尝试调用这个保存数据的接口就可以直接修改用户数据库的信息了,我第一次的时候随便修改了几个参数提示我:{"result":"参数错误","code":"401"}  or {"result":"参数为空","code":"401"} ?通过不断的尝试我发现,你需要这么操作才行:

1.当你退出游戏的时候,必会回调saveUserData这个接口,这时候复制请求体里面的json数据到postman里面

2.shopLevel这个参数是用于你朋友圈排名的,这个参数分两个阶段,非飞升阶段和飞升阶段,每个阶段最高等级是37级对应的名称分别为:无上皇和仙·无上皇(飞升阶段就是在非飞升阶段的名称前面加个仙而已),经测试这个参数有三种改法可以使你排名第一;

第一种:直接将shopLevel改成75级及以上,你在朋友圈的显示将成为这样如下图:

   none!

程序员肯定都知道为什么,因为游戏分为两个阶段,每个阶段的最高等级是37级,你改成75及以上超出了这一范围,无法匹配程序预先设定的字符串。

第二种:直接将shopLevel改成74级,你在朋友圈将直接变成仙·无上皇

第三种:以上两种只能让你霸榜,并不能让你主页也变成最高等级,如果你想要完美你可以这样操作;通过修改slots参数,这个是用于展示首页列表的,{"id":37,"pos":5} id代表等级,pos是所在位置(position),你可以先将shopLevel修改成37级,然后将slots数组里面添加三个:{"id":37,"pos":0},{"id":37,"pos":1},{"id":37,"pos":2},代表你有三个-无上皇,此时你再点击游戏内的一个小太极进入飞升阶段,成功之后系统会初始化你的数据,这时你再将shopLevel改为37级你的主页和朋友圈都将变成-仙·无上皇,如果你想完美点可再向slots数组里面添加11个{"id":37,"pos":0},代表你主页有11个仙·无上皇,注意一同修改pos的递增。

3.每次修改参数的时候必须将dbVersion这个参数+1或更多!不然肯定出现参数错误!,coin代表金币数量,你可以随便改+N个0不过有个最大值:1e+36,应该是数据库存储上限。

修改成功之后会出现这种json:

{
    "result": "ovKTi5NEo2XJKRE5fITqXNDiHm08",
    "code": "200"
}

此时你再进入游戏界面将发生变化,如果没变化你可以等一会,抓包的时候网络有点延时,首次加载的时候肯定是本地数据。如果等一会还是没变化你再进入fiddler,关闭游戏会再次回调保存数据的接口,你看下这次保存的数据是不是你之前修改的数据,如果不是,说明没有成功,那你就再次复制body到postman,修改对应参数,记住不能在上一次的参数里面直接提交,不然会出现参数错误,一定要重新复制重新修改!重新提交,这次就多提交几次。

最后献上我的最终排行榜

 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值