Skip to content

Instantly share code, notes, and snippets.

@yangceng
Created January 3, 2018 09:39
Show Gist options
  • Save yangceng/0c2a76564c1afa4cd3a1e238300b311f to your computer and use it in GitHub Desktop.
Save yangceng/0c2a76564c1afa4cd3a1e238300b311f to your computer and use it in GitHub Desktop.
跳一跳,最高10w
var CryptoJS = require('crypto-js')
var request = require('request-promise')
/*
* npm install crypto-js request-promise
* node wx_hack.js
*/
// export function testEncription(msg, fullKey) {
// var fullKey = fullKey.slice(0, 16)
// var key = CryptoJS.enc.Utf8.parse(fullKey)
// var iv = CryptoJS.enc.Utf8.parse(fullKey)
// var passWord = CryptoJS.AES.encrypt(msg, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })
// var base64 = passWord.toString()
// console.log('passWord', passWord)
// console.log('sessionId', sessionId)
// console.log('key', key)
// console.log('base64', base64)
// var bytes = CryptoJS.AES.decrypt(base64, key, {
// iv: iv
// });
// console.log('bytes', bytes)
// var plaintext = CryptoJS.enc.Utf8.stringify(bytes);
// console.log('plaintext', plaintext)
// }
function encrypt (text, originKey) {
var originKey = originKey.slice(0, 16),
key = CryptoJS.enc.Utf8.parse(originKey),
iv = CryptoJS.enc.Utf8.parse(originKey),
msg = JSON.stringify(text)
var ciphertext = CryptoJS.AES.encrypt(msg, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return ciphertext.toString()
}
function decrypt (text, originKey) {
var originKey = originKey.slice(0, 16),
key = CryptoJS.enc.Utf8.parse(originKey),
iv = CryptoJS.enc.Utf8.parse(originKey)
var bytes = CryptoJS.AES.decrypt(text, key, {
iv: iv
})
var plaintext = CryptoJS.enc.Utf8.stringify(bytes)
return plaintext
}
function extend (target) {
var sources = [].slice.call(arguments, 1)
sources.forEach(function (source) {
for (var prop in source) {
target[prop] = source[prop]
}
})
return target
}
var version = 5,
// score = Math.round(10000+Math.random()*2000),
score = 13142,
// replace with your session_id here
session_id = 'xxxx'
var headers = {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_1 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Mobile/15C153 MicroMessenger/6.6.1 NetType/WIFI Language/zh_CN',
'Referer': 'https://servicewechat.com/wx7c8d593b2c3a7703/' + version + '/page-frame.html',
'Content-Type': 'application/json',
'Accept-Language': 'zh-cn',
'Accept': '*/*'
}
var base_req = {
'base_req': {
'session_id': session_id,
'fast': 1
}
}
var base_site = 'https://mp.weixin.qq.com/wxagame/'
var path = 'wxagame_getuserinfo'
request({
method: 'POST',
url: base_site + path,
headers: headers,
json: true,
body: base_req
}).then(function (response) {
// console.log(path, response)
})
path = 'wxagame_getfriendsscore'
request({
method: 'POST',
url: base_site + path,
headers: headers,
json: true,
body: base_req
}).then(function (response) {
// console.log(response.my_user_info)
var times = response.my_user_info.times + 1
path = 'wxagame_init'
request({
method: 'POST',
url: base_site + path,
headers: headers,
json: true,
body: extend({}, {version: 9}, base_req)
}).then(function (response) {
// console.log(path, response)
var action = [],
musicList = [],
touchList = []
for (var i = 0; i < score; i++) {
action.push([0.752, 1.32, false])
musicList.push(false)
touchList.push([Math.round(100+Math.random()*200), Math.round(300+Math.random()*200)])
}
var data = {
score: score,
times: times,
game_data: JSON.stringify({
seed: Date.now(),
action: action,
musicList: musicList,
touchList: touchList,
version: 1
})
}
path = 'wxagame_settlement'
request({
method: 'POST',
url: base_site + path,
headers: headers,
json: true,
body: extend({}, {action_data: encrypt(data, session_id)}, base_req)
}).then(function (response) {
// console.log(path, response)
console.log('2018! Happy new year! 🎉')
}).catch(function (error) {
console.log(error)
})
})
}).catch(function (error) {
console.log('something crash')
})
@johnstevin
Copy link

不行的啊,108了
截止到目前,没有成功过

@johnstevin
Copy link

image
不行的啊,108了
截止到目前,没有成功过

@JonyFang
Copy link

JonyFang commented Jan 4, 2018

@greatemoon 只修改了 Post API 的 version (66 行

@wubianxiaoxian
Copy link

显示2018! Happy new year! ,但是分数没变

@wubianxiaoxian
Copy link

可以执行,修改分数为 2018
修改时间 2018-01-04 15:37

@johnstevin
Copy link

@wubianxiaoxian 你改成功了?我为啥报错 base_resp: { errcode: 108 }

@duantangjie
Copy link

sec_id不是一直在变吗?(重启微信就变一次)怎么成功的??

@pzsdev
Copy link

pzsdev commented Jan 4, 2018

下午朋友反馈,我的12018他已经看不见了。只有自己微信上能看见。2018-01-04

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment