- 免责声明: 仅作学习探讨。
- 一个一个来,我们先看-1.75版本。
- 1.75版本应该来说是比较简单的。
- 我们先看一下大概的格式(当然这个是简单的处理后的)
- 指的是简单的替换了些字符,比如网址,和简单的把鼠标移动轨迹监听加进去。
- 和找到生成sensor的地方简单的打印出来;
var _cf = _cf || [],
bmaka = bmaka && bmaka.hasOwnProperty("ver") && bmaka.hasOwnProperty("sed") ? bmaka : {
ver: 1.7,
ke_cnt_lmt: 150,
mme_cnt_lmt: 100,
mduce_cnt_lmt: 75,
pme_cnt_lmt: 25,
pduce_cnt_lmt: 25,
tme_cnt_lmt: 25,
tduce_cnt_lmt: 25,
doe_cnt_lmt: 10,
dme_cnt_lmt: 10,
vc_cnt_lmt: 100,
doa_throttle: 0,
dma_throttle: 0,
session_id: "default_session",
js_post: !1,
loc: "",
cf_url: "https:" === 'https:' ? "https://" : "http://",
params_url: ("https:" === 'https:' ? "https://" : "http://") + 'www.换成自己的.com' + "/get_params",
auth: "",
api_public_key: "afSbep8yjnZUjq3aL010jO15Sawj2VZfdYK8uY90uxq",
aj_lmt_doact: 1,
aj_lmt_dmact: 1,
aj_lmt_tact: 1,
ce_js_post: 0,
init_time: 0,
informinfo: "",
prevfid: -1,
fidcnt: 0,
sensor_data: 0,
ins: null,
cns: null,
enGetLoc: 0,
enReadDocUrl: 1,
disFpCalOnTimeout: 0,
xagg: -1,
pen: -1,
brow: "",
browver: "",
psub: "-",
lang: "-",
prod: "-",
plen: -1,
doadma_en: 0,
sdfn: [],
d2: 0,
d3: 0,
thr: 0,
cs: "0a46G5m17Vrp4o4c",
hn: "unk",
z1: 0,
o9: 0,
vc: "",
y1: 2016,
ta: 0,
tst: -1,
t_tst: 0,
ckie: "_abck",
n_ck: "0",
ckurl: 0,
bm: !1,
mr: "-1",
altFonts: !1,
rst: !1,
runFonts: !1,
fsp: !1,
firstLoad: !0,
pstate: !1,
mn_mc_lmt: 10,
mn_state: 0,
mn_mc_indx: 0,
mn_sen: 0,
mn_tout: 100,
mn_stout: 1e3,
mn_ct: 1,
mn_cc: "",
mn_cd: 1e4,
mn_lc: [],
mn_ld: [],
mn_lcl: 0,
mn_al: [],
mn_il: [],
mn_tcl: [],
mn_r: [],
mn_rt: 0,
mn_wt: 0,
mn_abck: "",
mn_psn: "",
mn_ts: "",
mn_lg: [],
loap: 1,
dcs: 0,
ir: function() {
bmaka.start_ts = Date.now ? Date.now() : +new Date(), bmaka.kact = "", bmaka.ke_cnt = 0, bmaka.ke_vel = 0, bmaka.mact = "", bmaka.mme_cnt = 0, bmaka.mduce_cnt = 0, bmaka.me_vel = 0, bmaka.pact = "", bmaka.pme_cnt = 0, bmaka.pduce_cnt = 0, bmaka.pe_vel = 0, bmaka.tact = "", bmaka.tme_cnt = 0, bmaka.tduce_cnt = 0, bmaka.te_vel = 0, bmaka.doact = "", bmaka.doe_cnt = 0, bmaka.doe_vel = 0, bmaka.dmact = "", bmaka.dme_cnt = 0, bmaka.dme_vel = 0, bmaka.vcact = "", bmaka.vc_cnt = 0, bmaka.aj_indx = 0, bmaka.aj_ss = 0, bmaka.aj_type = -1, bmaka.aj_indx_doact = 0, bmaka.aj_indx_dmact = 0, bmaka.aj_indx_tact = 0, bmaka.me_cnt = 0, bmaka.pe_cnt = 0, bmaka.te_cnt = 0, bmaka.nav_perm = "", bmaka.brv = 0, bmaka.hbCalc = !1, bmaka.fmh = "", bmaka.fmz = "", bmaka.ssh = "", bmaka.wv = "", bmaka.wr = "", bmaka.weh = "", bmaka.wl = 0;
},
get_cf_date: function() {
return Date.now ? Date.now() : +new Date();
},
sd_debug: function(t) {
if (!bmaka.js_post) {
var a = t;
"string" == typeof _sd_trace ? _sd_trace += a : _sd_trace = a;
}
},
pi: function(t) {
return parseInt(t);
},
uar: function() {
return window.navigator.userAgent.replace(/\\|"/g, "");
},
gd: function() {
var t = bmaka.uar(),
a = "" + bmaka.ab(t),
e = bmaka.start_ts / 2,
n = -1,
o = -1,
m = -1,
r = -1,
i = -1,
c = -1,
b = -1;
try {
n = window.screen ? window.screen.availWidth : -1;
} catch (t) {
n = -1;
}
try {
o = window.screen ? window.screen.availHeight : -1;
} catch (t) {
o = -1;
}
try {
m = window.screen ? window.screen.width : -1;
} catch (t) {
m = -1;
}
try {
r = window.screen ? window.screen.height : -1;
} catch (t) {
r = -1;
}
try {
i = window.innerHeight || (document.body && "clientHeight" in document.body ? document.body.clientHeight : document.documentElement && "clientHeight" in document.documentElement ? document.documentElement.clientHeight : -1);
} catch (t) {
i = -1;
}
try {
c = window.innerWidth || (document.body && "clientWidth" in document.body ? document.body.clientWidth : document.documentElement && "clientWidth" in document.documentElement ? document.documentElement.clientWidth : -1);
} catch (t) {
c = -1;
}
try {
b = "outerWidth" in window && void 0 !== window.outerWidth ? window.outerWidth : -1;
} catch (t) {
b = -1;
}
bmaka.z1 = bmaka.pi(bmaka.start_ts / (bmaka.y1 * bmaka.y1));
var d = Math.random(),
s = bmaka.pi(1e3 * d / 2),
k = d + "";
return k = k.slice(0, 11) + s, bmaka.gbrv(), bmaka.get_browser(), bmaka.bc(), bmaka.bmisc(), t + ",uaend," + bmaka.xagg + "," + bmaka.psub + "," + bmaka.lang + "," + bmaka.prod + "," + bmaka.plen + "," + bmaka.pen + "," + bmaka.wen + "," + bmaka.den + "," + bmaka.z1 + "," + bmaka.d3 + "," + n + "," + o + "," + m + "," + r + "," + c + "," + i + "," + b + "," + bmaka.bd() + "," + a + "," + k + "," + e + "," + bmaka.brv + ",loc:" + bmaka.loc;
},
get_browser: function() {
navigator.productSub && (bmaka.psub = navigator.productSub), navigator.language && (bmaka.lang = navigator.language), navigator.product && (bmaka.prod = navigator.product), bmaka.plen = void 0 !== navigator.plugins ? navigator.plugins.length : -1;
},
gbrv: function() {
// navigator.brave && navigator.brave.isBrave().then(function(t) {
// bmaka.brv = t ? 1 : 0;
// }).catch(function(t) {
// bmaka.brv = 0;
// });
bmaka.brv = 0;
},
bc: function() {
var t = window.addEventListener ? 1 : 0,
a = window.XMLHttpRequest ? 1 : 0,
e = window.XDomainRequest ? 1 : 0,
n = window.emit ? 1 : 0,
o = window.DeviceOrientationEvent ? 1 : 0,
m = window.DeviceMotionEvent ? 1 : 0,
r = window.TouchEvent ? 1 : 0,
i = window.spawn ? 1 : 0,
c = window.chrome ? 1 : 0,
b = Function.prototype.bind ? 1 : 0,
d = window.Buffer ? 1 : 0,
s = window.PointerEvent ? 1 : 0;
try {
var k = window.innerWidth ? 1 : 0;
} catch (t) {
var k = 0;
}
try {
var l = window.outerWidth ? 1 : 0;
} catch (t) {
var l = 0;
}
bmaka.xagg = t + (a << 1) + (e << 2) + (n << 3) + (o << 4) + (m << 5) + (r << 6) + (i << 7) + (k << 8) + (l << 9) + (c << 10) + (b << 11) + (d << 12) + (s << 13);
},
bmisc: function() {
bmaka.pen = window._phantom ? 1 : 0, bmaka.wen = window.webdriver ? 1 : 0, bmaka.den = window.domAutomation ? 1 : 0;
},
bd: function() {
var t = [],
a = window.callPhantom ? 1 : 0;
t.push(",cpen:" + a);
var e = 0;
window.ActiveXObject && "ActiveXObject" in window && (e = 1), t.push("i1:" + e);
var n = "number" == typeof document.documentMode ? 1 : 0;
t.push("dm:" + n);
var o = window.chrome && window.chrome.webstore ? 1 : 0;
t.push("cwen:" + o);
var m = navigator.onLine ? 1 : 0;
t.push("non:" + m);
var r = window.opera ? 1 : 0;
t.push("opc:" + r);
var i = "undefined" != typeof InstallTrigger ? 1 : 0;
t.push("fc:" + i);
var c = window.HTMLElement && Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor") > 0 ? 1 : 0;
t.push("sc:" + c);
var b = "function" == typeof window.RTCPeerConnection || "function" == typeof window.mozRTCPeerConnection || "function" == typeof window.webkitRTCPeerConnection ? 1 : 0;
t.push("wrc:" + b);
var d = "mozInnerScreenY" in window ? window.mozInnerScreenY : 0;
t.push("isc:" + d), bmaka.d2 = bmaka.pi(bmaka.z1 / 23);
var s = "function" == typeof navigator.vibrate ? 1 : 0;
t.push("vib:" + s);
var k = "function" == typeof navigator.getBattery ? 1 : 0;
t.push("bat:" + k);
var l = Array.prototype.forEach ? 0 : 1;
t.push("x11:" + l);
var u = "FileReader" in window ? 1 : 0;
return t.push("x12:" + u), t.join(",");
},
fas: function() {
try {
return Boolean(navigator.credentials) + (Boolean(navigator.appMinorVersion) << 1) + (Boolean(navigator.bluetooth) << 2) + (Boolean(navigator.storage) << 3) + (Boolean(Math.imul) << 4) + (Boolean(navigator.getGamepads) << 5) + (Boolean(navigator.getStorageUpdates) << 6) + (Boolean(navigator.hardwareConcurrency) << 7) + (Boolean(navigator.mediaDevices) << 8) + (Boolean(navigator.mozAlarms) << 9) + (Boolean(navigator.mozConnection) << 10) + (Boolean(navigator.mozIsLocallyAvailable) << 11) + (Boolean(navigator.mozPhoneNumberService) << 12) + (Boolean(navigator.msManipulationViewsEnabled) << 13) + (Boolean(navigator.permissions) << 14) + (Boolean(navigator.registerProtocolHandler) << 15) + (Boolean(navigator.requestMediaKeySystemAccess) << 16) + (Boolean(navigator.requestWakeLock) << 17) + (Boolean(navigator.sendBeacon) << 18) + (Boolean(navigator.serviceWorker) << 19) + (Boolean(navigator.storeWebWideTrackingException) << 20) + (Boolean(navigator.webkitGetGamepads) << 21) + (Boolean(navigator.webkitTemporaryStorage) << 22) + (Boolean(Number.parseInt) << 23) + (Boolean(Math.hypot) << 24);
} catch (t) {
return 0;
}
},
getmr: function() {
try {
if ("undefined" == typeof performance || void 0 === performance.now || "undefined" == typeof JSON) return void(bmaka.mr = "undef");
for (var t = "", a = 1e3, e = [Math.abs, Math.acos, Math.asin, Math.atanh, Math.cbrt, Math.exp, Math.random, Math.round, Math.sqrt, isFinite, isNaN, parseFloat, parseInt, JSON.parse], n = 0; n < e.length; n++) {
var o = [],
m = 0,
r = performance.now(),
i = 0,
c = 0;
if (void 0 !== e[n]) {
for (i = 0; i < a && m < .6; i++) {
for (var b = performance.now(), d = 0; d < 4e3; d++) e[n](3.14);
var s = performance.now();
o.push(Math.round(1e3 * (s - b))), m = s - r;
}
var k = o.sort();
c = k[Math.floor(k.length / 2)] / 5;
}
t = t + c + ",";
}
bmaka.mr = t;
} catch (t) {
bmaka.mr = "exception";
}
},
sed: function() {
var t;
t = "0";
var a;
a = "0";
var e;
e = "0";
var n;
n = "0";
var o;
o = '1'
var m;
m = "0";
var r;
return r = null != null ? "1" : "0", [t, a, e, n, o, m, r].join(",");
//return '0,0,0,0,1,0,0'
},
cma: function(t, a) {
try {
if (1 == a && bmaka.mme_cnt < bmaka.mme_cnt_lmt || 1 != a && bmaka.mduce_cnt < bmaka.mduce_cnt_lmt) {
var e = t || window.event,
n = -1,
o = -1;
e && e.pageX && e.pageY ? (n = Math.floor(e.pageX), o = Math.floor(e.pageY)) : e && e.clientX && e.clientY && (n = Math.floor(e.clientX), o = Math.floor(e.clientY));
var m = e.toElement;
null == m && (m = e.target);
var r = bmaka.gf(m),
i = bmaka.get_cf_date() - bmaka.start_ts,
c = bmaka.me_cnt + "," + a + "," + i + "," + n + "," + o;
if (1 != a) {
c = c + "," + r;
var b = void 0 !== e.which ? e.which : e.button;
null != b && 1 != b && (c = c + "," + b);
}
void 0 !== true && !1 === true && (c += ",it0"), c += ";", bmaka.me_vel = bmaka.me_vel + bmaka.me_cnt + a + i + n + o, bmaka.mact = bmaka.mact + c, bmaka.ta += i;
}
1 == a ? bmaka.mme_cnt++ : bmaka.mduce_cnt++, bmaka.me_cnt++, bmaka.js_post && 3 == a && (bmaka.aj_type = 1, bmaka.bpd(), bmaka.pd(!0), bmaka.ce_js_post = 1);
} catch (t) {}
},
x2: function() {
var t = bmaka.ff,
a = t(98) + t(109) + t(97) + t(107),
e = t(103) + t(101) + t(116) + t(95) + t(99) + t(102) + t(95) + t(100) + t(97) + t(116) + t(101),
n = window[a][e],
o = 0;
return "function" == typeof n && (o = n()), o;
},
np: function() {
var t = [],
a = ["geolocation", "notifications", "push", "midi", "camera", "microphone", "speaker", "device-info", "background-sync", "bluetooth", "persistent-storage", "ambient-light-sensor", "accelerometer", "gyroscope", "magnetometer", "clipboard", "accessibility-events", "clipboard-read", "clipboard-write", "payment-handler"];
try {
if (!navigator.permissions) return void(bmaka.nav_perm = 6);
bmaka.nav_perm = 8;
var e = function(a, e) {
return navigator.permissions.query({
name: a
}).then(function(a) {
switch (a.state) {
case "prompt":
t[e] = 1;
break;
case "granted":
t[e] = 2;
break;
case "denied":
t[e] = 0;
break;
default:
t[e] = 5;
}
}).catch(function(a) {
t[e] = -1 !== a.message.indexOf("is not a valid enum value of type PermissionName") ? 4 : 3;
});
},
n = a.map(function(t, a) {
return e(t, a);
});
Promise.all(n).then(function() {
bmaka.nav_perm = t.join("");
});
} catch (t) {
bmaka.nav_perm = 7;
}
},
cpa: function(t, a) {
try {
var e = !1;
if (1 == a && bmaka.pme_cnt < bmaka.pme_cnt_lmt || 1 != a && bmaka.pduce_cnt < bmaka.pduce_cnt_lmt) {
var n = t || window.event;
if (n && "mouse" != n.pointerType) {
e = !0;
var o = -1,
m = -1;
n && n.pageX && n.pageY ? (o = Math.floor(n.pageX), m = Math.floor(n.pageY)) : n && n.clientX && n.clientY && (o = Math.floor(n.clientX), m = Math.floor(n.clientY));
var r = bmaka.get_cf_date() - bmaka.start_ts,
i = bmaka.pe_cnt + "," + a + "," + r + "," + o + "," + m;
void 0 !== true && !1 === true && (i += ",0"), bmaka.pe_vel = bmaka