1. 程式人生 > >我要當皇上微信小遊戲破解

我要當皇上微信小遊戲破解

前兩天一朋友問我:你有我要當皇上外掛到~仙·無上皇~嗎?(鑑於之前我幫其整過微信跳一跳小遊戲的外掛,其實也就是安裝指令碼自動跳而已)。起初我並沒有在意,待我工作忙完之後才想起此事,於是乎就開啟了破解之路!

不墨跡,先上張截圖如下:

這是我破解之後的介面,資料全是滿的,朋友圈排行榜絕逼第一,沒有之一!

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

一開始當然是嘗試抓包啦,做過微信小程式的都知道里面的請求肯定都是https的,這是微信官方規定的。那隻好找個工具抓包嘍,我的是windows電腦使用Fiddler抓包,不會抓包的童鞋點戳這裡--fiddler抓包教程。(如果遇到手機安裝不上證書的問題,可嘗試更換一部手機試試,我的小米5X就安裝不上,具體原因沒研究,後來換了華為榮耀9就好了)

成功抓包之後你進入遊戲的時候會發現這個介面:https://h5.chiguawan.com/Emperor/user/saveUserData

一看名字就知道是儲存資料的!也就是修改資料庫的!!

這是我抓到的資料:

{
	"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": "7269963c97f-b6c1-4640-aea1-bf14673870a5",
	"openId": "ovKTi5NEo2XJKRE5fITqXNDiHm08"
}

很顯然,我們只要嘗試呼叫這個儲存資料的介面就可以直接修改使用者資料庫的資訊了,我第一次的時候隨便修改了幾個引數提示我:{"result":"引數為空","code":"401"}   WTF?通過不斷的嘗試我發現,你需要這麼操作才行:

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,修改對應引數,記住不能在上一次的引數裡面直接提交,不然會出現引數錯誤,一定要重新複製重新修改!重新提交,這次就多提交幾次。

最後獻上我的最終排行榜