I'm doing some apps which require login into a twitter account using HttpWebRequest.
In the POST request there's a parameter called "ui_metrics", What is this parameter used for? Is there a problem if I didn't send it?
The content of it is generated by this script: https://twitter.com/i/js_inst?c_name=ui_metrics
Edit: I also want to convert this script to C# or VB.NET, I know how to download it to a string, but how to get the value it returns, which is ui_metrics as shown in the above screen. so, To be clear of what I want:
I deobfuscate this script, the result I reached is this:
'use strict';
function function_A() {
var detectIdle = function load()
{
function init()
{
var y2 = 97;
var y1 = 29;
var y = 21;
var res = 254;
y1 = y1 | res;
y1 = function(s, name, overrideY) {
function Rule(dayRule) {
this.USghQ = function() {
return this.qpGvE ^ dayRule;
};
}
var undefined = {
qpGvE : overrideY
};
var rule = new Rule(s);
rule.qpGvE = name;
Rule.prototype = undefined;
return rule.USghQ() | (new Rule(name)).USghQ();
}
(y1, y2, y2);
y = function(namespace, value, data) {
function get(item, value) {
var i = 0;
for (; i < 8; i++) {
var t = document.createElement("div");
item.appendChild(t);
t.innerText = value;
if ((value & 1) == 0) {
item = t;
}
value = value >> 1;
}
return item;
}
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));
}
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, namespace), value), data), i, 0);
i.parentNode.removeChild(i);
return a;
}
(y, y2, y);
res = function(s, name, overrideY) {
function Rule(dayRule) {
this.AGAog = function() {
return this.QWVxt ^ dayRule;
};
}
var undefined = {
QWVxt : overrideY
};
var rule = new Rule(s);
rule.QWVxt = name;
Rule.prototype = undefined;
return rule.AGAog() | (new Rule(name)).AGAog();
}
(res, y2, y1);
y1 = ~y1;
y1 = function(name, s, overrideY) {
function Rule(dayRule) {
this.bjQRh = function() {
return this.XMmHE ^ dayRule;
};
}
var undefined = {
XMmHE : overrideY
};
var rule = new Rule(name);
rule.XMmHE = s;
Rule.prototype = undefined;
return rule.bjQRh() | (new Rule(s)).bjQRh();
}
(y1, res, y2);
y1 = y1 ^ (new Date(y1 * 10000000000)).getUTCDate();
y2 = y2 ^ res;
y2 = ~(y2 & y1);
y = y | y2;
y1 = y1 ^ res;
y1 = function(value, namespace, data) {
function get(item, value) {
var i = 0;
for (; i < 8; i++) {
var t = document.createElement("div");
item.appendChild(t);
t.innerText = value;
if ((value & 1) == 0) {
item = t;
}
value = value >> 1;
}
return item;
}
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));
}
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, value), namespace), data), i, 0);
i.parentNode.removeChild(i);
return a;
}
(y1, y, y);
y = y ^ y1;
y1 = ~(y1 & y);
y2 = y2 ^ y2;
res = function(spec, y, n24)
{
function Date(s) {
this.zzqeC = function() {
return this.FnqRf ^ s;
};
}
var original = {
FnqRf : n24
};
var c = new Date(spec);
c.FnqRf = y;
Date.prototype = original;
return c.zzqeC() | (new Date(y)).zzqeC();
}
(res, y1, y);
y1 = ~y1;
y = y & res;
y = ~y;
y1 = function(name, data, objResponse) {
function Section(value) {
this.iGKhJ = function() {
return this.eCRWB ^ value;
};
}
var _Date_prototype = {
eCRWB : objResponse
};
var section = new Section(name);
section.eCRWB = data;
Section.prototype = _Date_prototype;
return section.iGKhJ() | (new Section(data)).iGKhJ();
}
(y1, y, res);
y1 = y1 ^ (new Date(y1 * 10000000000)).getUTCDate();
y2 = function(value, namespace, data)
{
function get(item, value) {
var i = 0;
for (; i < 8; i++) {
var t = document.createElement("div");
item.appendChild(t);
t.innerText = value;
if ((value & 1) == 0) {
item = t;
}
value = value >> 1;
}
return item;
}
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));
}
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, value), namespace), data), i, 0);
i.parentNode.removeChild(i);
return a;
}
(y2, y, y);
y2 = function(value, key, status)
{
function get(item, value) {
var i = 0;
for (; i < 8; i++) {
var t = document.createElement("div");
item.appendChild(t);
t.innerText = value;
if ((value & 1) == 0) {
item = t;
}
value = value >> 1;
}
return item;
}
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));
}
var i = document.createElement("div");
i.setAttribute("style", "display:none;");
document.getElementsByTagName("body")[0].appendChild(i);
var a = update(get(get(get(i, value), key), status), i, 0);
i.parentNode.removeChild(i);
return a;
}
(y2, y1, y1);
y = y ^ y2;
res = ~(res & y2);
res = res & res;
y2 = y2 ^ y1;
y1 = ~y1;
y1 = ~(y1 & y2);
y2 = function(name, json, overrideY) {
function Section(value) {
this.DJrcU = function() {
return this.OCEGA ^ value;
};
}
var _Date_prototype = {
OCEGA : overrideY
};
var s = new Section(name);
s.OCEGA = json;
Section.prototype = _Date_prototype;
return s.DJrcU() | (new Section(json)).DJrcU();
}
(y2, res, y1);
y1 = y1 ^ (new Date(y1 * 10000000000)).getUTCDate();
return {
"rf" : {
"ac133410c945cc4ec78ca58122a0d846d3b68bf81460c0ccd5d1d63a2573066a" : y2,
"c4564511aef468a7853ced7853bc4440ce63dad605706f0caab8f2088bed1899" : y1,
"a01041174f8b8fcc122f49a86656b6d994e61f028f2f39d200be3b408f617a61" : y,
"a93442d9c7d65cb1bbb21984d5261c7de76c8b3b6bf37c1918059f6f0dfefc58" : res
},
"s" : "caeM1pzDfd3B7lRINfvP-_jYwuXsE8WuEk9oRuy1WebhbLM9hGtM7nY6SemooLmlQUtAQDMN6fX1TGBl6C3fcRe_jDgevtWJTLR8MZQYxRNsCdIgHdfEj3nb0rManz0VnQeAhzLD1MWJfMuP3dlxGv3sATF7u6GJd1MKbqZ5JTQnV64Vx_B4s6jio82LhJy3QFmg4S_nHIckJFdCwHsrZa-VcIpwPTSO1pQPOSVV-CXCp89Sos944wXgdBxhh-TFEDUZnoWxDdcZFuN7ATsLC2QSO5PVQEty4BfLuOBq0--85BNcwwPVToI4sgTd7XSVtE3t5nSrrCXQ20KIZ0fjlQAAAXap9JSx"
};
}
var completion;
try
{
completion = JSON.stringify(init());
}
catch (endQuote)
{
completion = "exception " + endQuote;
}
var in_tokens;
in_tokens = document.getElementsByName("ui_metrics");
var i = 0;
for (; i < in_tokens.length; i++) {
in_tokens[i].value = completion;
}
};
var $__jsx_onload = function $__jsx_onload() {
document.removeEventListener("DOMContentLoaded", $__jsx_onload);
window.removeEventListener("load", $__jsx_onload);
window.setTimeout(detectIdle);
};
if (document.readyState === "complete")
{
window.setTimeout(detectIdle);
}else
{
document.addEventListener("DOMContentLoaded", $__jsx_onload);
window.addEventListener("load", $__jsx_onload);
}
}
function_A();