SkyChrome
Joke Crafter
2
MONTHS
2 2 MONTHS OF SERVICE
LEVEL 1
300 XP
Hey guys,
So i haven't RE the ui_metrics function in a while and thought i would do again. It's not hard it just mostly takes time so i thought i would document my progress here while RE it if anyone else ever would need this.
Feel free to help along if you feel like it or give me 2-3 days to RE the full javascript.
ui_metrics is the header that gets sent when you login so it's rly usefull when creating a cracker. I would say it's the main reason for no Twitter configs
Original Version:
So i haven't RE the ui_metrics function in a while and thought i would do again. It's not hard it just mostly takes time so i thought i would document my progress here while RE it if anyone else ever would need this.
Feel free to help along if you feel like it or give me 2-3 days to RE the full javascript.
ui_metrics is the header that gets sent when you login so it's rly usefull when creating a cracker. I would say it's the main reason for no Twitter configs
Code:
<html>
<script>
function GetUI_Metrics() {
function init() {
var i = 139;
var next = 11;
var value = 103;
var result = 198;
var tmpString = '';
// The ~ sign is a NOT bitwise operator
// Read more about that here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#(Bitwise_NOT)
// The | sign is a OR bitwise operator
// read more about that here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#(Bitwise_OR)
next = ~(next & result); // = -3
i = ~(i & result); // = -131
i = ~i; // = 130
value = value | next; // = -1
i = (value ^ i) | (i ^ value); // = 68
result = (next ^ result) | (i ^ next); // = ?
function get(item, value) {
var i = 0;
for (; i < 8; i++) {
if ((value & 1) == 0) {
tmpString += "/";
}
tmpString += value + "|";
value = value >> 1;
}
return tmpString;
}
function update(element, end) {
console.log(element);
console.log("-22-11-6-3-2-1-1-1-69-35-18-9-5-3-2-1-3-2-1-1-1-1-1-1");
var numbers = element.split('/');
numbers.splice(0,1);
numbers.forEach(function(number) {
console.log(number.split('|')[0]);
end = end + parseInt(number.split('|')[0]);
console.log(end);
});
tmpString = '';
return end % 256;
}
value = update(get(get(get(i, value), result), next), 0);
value = update(get(get(get(i, value), result), next), 0);
value = ~value;
result = result | value;
i = i ^ (new Date(i * 10000000000)).getUTCDate();
next = update(get(get(get(i, next), result), next), 0);
next = ~(next & i);
next = (value ^ next) | (i ^ value); // = ?
result = result | i;
i = i & result;
next = update(get(get(get(i, next), next), value), 0);
console.log("next: " + next);
console.log("i: " + i);
console.log("value: " + value);
console.log("result: " + result);
result = function(value, selector, lineStringProperty) {
function Field(selectedEmbed) {
this.pBCUj = function() {
return this.iIryT ^ selectedEmbed;
};
}
var _Date_prototype = {
iIryT : lineStringProperty
};
var ret = new Field(value);
ret.iIryT = selector;
Field.prototype = _Date_prototype;
return ret.pBCUj() | (new Field(selector)).pBCUj();
}(result, result, value);
i = ~(i & next);
next = function(key, o, change) {
function callback(value, data) {
var i = 0;
for (; i < 8; i++) {
var tmp = document.createElement("div");
value.appendChild(tmp);
tmp.innerText = data;
if ((data & 1) == 0) {
value = tmp;
}
data = data >> 1;
}
return value;
}
function parse(element, x, play) {
if (!element || element == x) {
return play % 256;
}
for (; element.children.length > 0;) {
element.removeChild(element.lastElementChild);
}
return parse(element.parentNode, x, play + parseInt(element.innerText));
}
/** @ {!Element} */
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var value = parse(callback(callback(callback(i, key), o), change), i, 0);
i.parentNode.removeChild(i);
return value;
}(next, i, next);
i = ~(i & value);
result = ~result;
result = ~(result & result);
result = result & value;
value = value | next;
i = function(val, y, kReaction) {
function Date(s) {
this.eYwBQ = function() {
return this.Sjzdi ^ s;
};
}
var original = {
Sjzdi : kReaction
};
var d = new Date(val);
d.Sjzdi = y;
Date.prototype = original;
return d.eYwBQ() | (new Date(y)).eYwBQ();
}(i, value, result);
next = ~(next & result);
result = result ^ result;
value = function(time, ci, file) {
function callback(version, value) {
var i = 0;
for (; i < 8; i++) {
var style = document.createElement("div");
version.appendChild(style);
style.innerText = value;
if ((value & 1) == 0) {
version = style;
}
value = value >> 1;
}
return version;
}
function parse(element, x, play) {
if (!element || element == x) {
return play % 256;
}
for (; element.children.length > 0;) {
element.removeChild(element.lastElementChild);
}
return parse(element.parentNode, x, play + parseInt(element.innerText));
}
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var value = parse(callback(callback(callback(i, time), ci), file), i, 0);
i.parentNode.removeChild(i);
return value;
}(value, i, result);
i = i ^ (new Date(i * 1E10)).getUTCDate();
value = value ^ (new Date(value * 1E10)).getUTCDate();
return {
"rf" : {
"a8be13471d6c062dc487bd9f60bd0ef367e2cd57fc0c49566c101ad6f695cfda" : i,
"a0c4566a4c2629b2dbb2315c71c82754cedb137a0e93a2b5cafa69f6fdd92290" : next,
"a096c124e23a7d9e2e0af383ec7fc199971ebe609da4350104d0ffd3768b3c85" : value,
"a315a520ee3adcb4df99d2454ae0061e7a1e7273a6ff0a863b1b94a05132f738" : result
},
"s" : "[snip]"
};
}
var completion;
try {
completion = JSON.stringify(init());
} catch (endQuote) {
completion = "exception " + endQuote;
}
console.log(completion);
// var in_tokens;
// in_tokens = document.getElementsByName("ui_metrics");
// var i = 0;
// for (; i < in_tokens.length; i++) {
// in_tokens.value = completion;
// }
}
GetUI_Metrics();
</script>
</html>
Code:
'use strict';
/**
* @ {undefined}
*/
function WyGUKeOsnAWcnWSUovhv() {
/**
* @ {undefined}
*/
var init = function() {
/**
* @ {?}
*/
function init() {
/** @ {number} */
var value = 44;
/** @ {number} */
var i = 200;
/** @ {number} */
var res = 0;
/** @ {number} */
var result = 30;
/** @ {number} */
res = res | i;
/** @ {number} */
value = value & result;
/** @ {number} */
res = ~res;
i = function(value, data, e) {
/**
* @ {!Element} item
* @ {number} value
* @ {?}
*/
function get(item, value) {
/** @ {number} */
var i = 0;
for (; i < 8; i++) {
/** @ {!Element} */
var t = document.createElement("div");
item.appendChild(t);
/** @ {number} */
t.innerText = value;
if ((value & 1) == 0) {
/** @ {!Element} */
item = t;
}
/** @ {number} */
value = value >> 1;
}
return item;
}
/**
* @ {!Node} element
* @ {!Node} object
* @ {number} end
* @ {?}
*/
function update(element, object, end) {
if (!element || element == object) {
return end % 256;
}
for (; element.children.length > 0;) {
element.removeChild(element.lastElementChild);
}
return update(element.parentNode, object, end + parseInt(element.innerText));
}
/** @ {!Element} */
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, value), data), e), i, 0);
i.parentNode.removeChild(i);
return a;
}(i, i, value);
/** @ {number} */
i = ~(i & result);
/** @ {number} */
value = value ^ res;
/** @ {number} */
i = i & value;
/** @ {number} */
i = ~i;
/** @ {number} */
i = i ^ (new Date(i * 10000000000)).getUTCDate();
/** @ {number} */
res = ~(res & result);
/** @ {number} */
result = ~(result & i);
res = function(value, data, item) {
/**
* @ {!Element} item
* @ {number} value
* @ {?}
*/
function get(item, value) {
/** @ {number} */
var i = 0;
for (; i < 8; i++) {
/** @ {!Element} */
var t = document.createElement("div");
item.appendChild(t);
/** @ {number} */
t.innerText = value;
if ((value & 1) == 0) {
/** @ {!Element} */
item = t;
}
/** @ {number} */
value = value >> 1;
}
return item;
}
/**
* @ {!Node} element
* @ {!Node} object
* @ {number} end
* @ {?}
*/
function update(element, object, end) {
if (!element || element == object) {
return end % 256;
}
for (; element.children.length > 0;) {
element.removeChild(element.lastElementChild);
}
return update(element.parentNode, object, end + parseInt(element.innerText));
}
/** @ {!Element} */
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, value), data), item), i, 0);
i.parentNode.removeChild(i);
return a;
}(res, value, i);
/** @ {number} */
result = result ^ value;
value = function(value, data, exprCode) {
/**
* @ {?} s
* @ {undefined}
*/
function Date(s) {
/**
* @ {?}
*/
this.hSxka = function() {
return this.VRmZv ^ s;
};
}
var original = {
VRmZv : exprCode
};
var d = new Date(value);
/** @ {number} */
d.VRmZv = data;
Date.prototype = original;
return d.hSxka() | (new Date(data)).hSxka();
}(value, result, value);
value = function(data, name, varNum) {
/**
* @ {?} value
* @ {undefined}
*/
function Section(value) {
/**
* @ {?}
*/
this.sonLr = function() {
return this.WcSUq ^ value;
};
}
var _Date_prototype = {
WcSUq : varNum
};
var s = new Section(data);
/** @ {number} */
s.WcSUq = name;
Section.prototype = _Date_prototype;
return s.sonLr() | (new Section(name)).sonLr();
}(value, res, i);
/** @ {number} */
value = value | result;
result = function(path, value, data) {
/**
* @ {!Element} link
* @ {number} color
* @ {?}
*/
function get(link, color) {
/** @ {number} */
var i = 0;
for (; i < 8; i++) {
/** @ {!Element} */
var label = document.createElement("div");
link.appendChild(label);
/** @ {number} */
label.innerText = color;
if ((color & 1) == 0) {
/** @ {!Element} */
link = label;
}
/** @ {number} */
color = color >> 1;
}
return link;
}
/**
* @ {!Node} element
* @ {!Node} object
* @ {number} end
* @ {?}
*/
function update(element, object, end) {
if (!element || element == object) {
return end % 256;
}
for (; element.children.length > 0;) {
element.removeChild(element.lastElementChild);
}
return update(element.parentNode, object, end + parseInt(element.innerText));
}
/** @ {!Element} */
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, path), value), data), i, 0);
i.parentNode.removeChild(i);
return a;
}(result, res, i);
/** @ {number} */
i = ~(i & value);
result = function(path, value, data) {
/**
* @ {!Element} link
* @ {number} color
* @ {?}
*/
function get(link, color) {
/** @ {number} */
var i = 0;
for (; i < 8; i++) {
/** @ {!Element} */
var label = document.createElement("div");
link.appendChild(label);
/** @ {number} */
label.innerText = color;
if ((color & 1) == 0) {
/** @ {!Element} */
link = label;
}
/** @ {number} */
color = color >> 1;
}
return link;
}
/**
* @ {!Node} element
* @ {!Node} object
* @ {number} end
* @ {?}
*/
function update(element, object, end) {
if (!element || element == object) {
return end % 256;
}
for (; element.children.length > 0;) {
element.removeChild(element.lastElementChild);
}
return update(element.parentNode, object, end + parseInt(element.innerText));
}
/** @ {!Element} */
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, path), value), data), i, 0);
i.parentNode.removeChild(i);
return a;
}(result, res, res);
/** @ {number} */
value = value | res;
/** @ {number} */
i = ~i;
/** @ {number} */
value = value & res;
/** @ {number} */
i = ~(i & value);
/** @ {number} */
value = ~value;
/** @ {number} */
result = result ^ (new Date(result * 1E10)).getUTCDate();
/** @ {number} */
res = res & value;
value = function(value, data, objResponse) {
/**
* @ {?} s
* @ {undefined}
*/
function Date(s) {
/**
* @ {?}
*/
this.MyXms = function() {
return this.YAzds ^ s;
};
}
var original = {
YAzds : objResponse
};
var d = new Date(value);
/** @ {number} */
d.YAzds = data;
Date.prototype = original;
return d.MyXms() | (new Date(data)).MyXms();
}(value, result, res);
/** @ {number} */
result = result & value;
/** @ {number} */
res = res & result;
/** @ {number} */
result = result & value;
/** @ {number} */
value = ~value;
/** @ {number} */
res = ~res;
return {
"rf" : {
"a3ab507133d00a3da6c34bc5ba18c13abf495af0714770834db43fd65398ef1f" : value,
"a6a1891595cd391511e37eebd0b28ddf1c502fbeed9c3365078f24810d60f502" : i,
"a488e7af3025cf92353511a976bd4c2c22fcb58a60570fe715b6be86918fe74b" : res,
"a49a4880554687de502e5ff75a29ad9aa5a1deb8aad305c90327bc98d01c3129" : result
},
"s" : "[SNIP]"
};
}
var completion;
try {
/** @ {string} */
completion = JSON.stringify(init());
} catch (endQuote) {
/** @ {string} */
completion = "exception " + endQuote;
}
var in_tokens;
/** @ {!NodeList<Element>} */
in_tokens = document.getElementsByName("ui_metrics");
/** @ {number} */
var i = 0;
for (; i < in_tokens.length; i++) {
/** @ {string} */
in_tokens.value = completion;
}
};
/**
* @ {undefined}
*/
var $__jsx_onload = function() {
document.removeEventListener("DOMContentLoaded", $__jsx_onload);
window.removeEventListener("load", $__jsx_onload);
window.setTimeout(init);
};
if (document.readyState === "complete") {
window.setTimeout(init);
} else {
document.addEventListener("DOMContentLoaded", $__jsx_onload);
window.addEventListener("load", $__jsx_onload);
}
}
WyGUKeOsnAWcnWSUovhv();