您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
8/28/2022, 8:19:50 PM
当前为
// ==UserScript== // @name Eval Script // @namespace Wolfy0615 // @match https://mppclone.com/* // @match https://multiplayerpiano.com/* // @grant none // @version 1.3 // @author Wolfy0615 // @require https://greasyfork.org/scripts/450595-utilinspectforbrowser/code/UtilInspectForBrowser.js // @description 8/28/2022, 8:19:50 PM // ==/UserScript== // Why the require? Minified code is scary. // Unminified code is avalible here: https://gist.github.com/Wolfy0615/e2617aca7cece2c2f067f3082fc37b5c?permalink_comment_id=4287505#gistcomment-4287505 // Please note: Some function names etc. may seem odd, but the file is realitivly small. This module comes straight from NodeJS and was *compiled* for the browser. // This means I did not write that code myself, it was simply compiled to the file so it could work for the browser. function handleMessage(msg) { let client = MPP.client; let token = localStorage.token; if (client) { if (msg.a.startsWith(">") && msg.p._id == client.getOwnParticipant()._id) { try { let localStorage = {}; window.localStorage = {}; let evaled = eval(msg.a.substring(1).trim()); client.sendArray([{ m: 'a', message: `✔️ ${typeof evaled} ${window.inspect(evaled)}`.substring(0, 512).replaceAll(token, "[REDACTED]").replaceAll("\n", " ") }]) } catch (err) { if (err) { client.sendArray([{ m: 'a', message: `❌ ${typeof err} ${err}` }]); } } } } } function init() { MPP.client.on("a", msg => { handleMessage(msg); }); } const checkInterval = setInterval(() => { if (window.MPP) { clearInterval(checkInterval); init(); } }, 200);