mirror of https://github.com/IoTcat/Ushio-js.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
36 KiB
121 lines
36 KiB
5 years ago
|
/* fp@iotcat v2.0.1 */
|
||
|
;(function(e,r,a){"use strict";if(typeof window!=="undefined"&&typeof define==="function"&&define.amd){define(a)}else if(typeof module!=="undefined"&&module.exports){module.exports=a()}else if(r.exports){r.exports=a()}else{r[e]=a()}})("fp",this,function(){"use strict";var l=.8;var f=function(e,r){e=[e[0]>>>16,e[0]&65535,e[1]>>>16,e[1]&65535];r=[r[0]>>>16,r[0]&65535,r[1]>>>16,r[1]&65535];var a=[0,0,0,0];a[3]+=e[3]+r[3];a[2]+=a[3]>>>16;a[3]&=65535;a[2]+=e[2]+r[2];a[1]+=a[2]>>>16;a[2]&=65535;a[1]+=e[1]+r[1];a[0]+=a[1]>>>16;a[1]&=65535;a[0]+=e[0]+r[0];a[0]&=65535;return[a[0]<<16|a[1],a[2]<<16|a[3]]};var d=function(e,r){e=[e[0]>>>16,e[0]&65535,e[1]>>>16,e[1]&65535];r=[r[0]>>>16,r[0]&65535,r[1]>>>16,r[1]&65535];var a=[0,0,0,0];a[3]+=e[3]*r[3];a[2]+=a[3]>>>16;a[3]&=65535;a[2]+=e[2]*r[3];a[1]+=a[2]>>>16;a[2]&=65535;a[2]+=e[3]*r[2];a[1]+=a[2]>>>16;a[2]&=65535;a[1]+=e[1]*r[3];a[0]+=a[1]>>>16;a[1]&=65535;a[1]+=e[2]*r[2];a[0]+=a[1]>>>16;a[1]&=65535;a[1]+=e[3]*r[1];a[0]+=a[1]>>>16;a[1]&=65535;a[0]+=e[0]*r[3]+e[1]*r[2]+e[2]*r[1]+e[3]*r[0];a[0]&=65535;return[a[0]<<16|a[1],a[2]<<16|a[3]]};var g=function(e,r){r%=64;if(r===32){return[e[1],e[0]]}else if(r<32){return[e[0]<<r|e[1]>>>32-r,e[1]<<r|e[0]>>>32-r]}else{r-=32;return[e[1]<<r|e[0]>>>32-r,e[0]<<r|e[1]>>>32-r]}};var v=function(e,r){r%=64;if(r===0){return e}else if(r<32){return[e[0]<<r|e[1]>>>32-r,e[1]<<r]}else{return[e[1]<<r-32,0]}};var h=function(e,r){return[e[0]^r[0],e[1]^r[1]]};var m=function(e){e=h(e,[0,e[0]>>>1]);e=d(e,[4283543511,3981806797]);e=h(e,[0,e[0]>>>1]);e=d(e,[3301882366,444984403]);e=h(e,[0,e[0]>>>1]);return e};var s=function(e,r){e=e||"";r=r||0;var a=e.length%16;var t=e.length-a;var n=[0,r];var i=[0,r];var o=[0,0];var u=[0,0];var l=[2277735313,289559509];var s=[1291169091,658871167];for(var c=0;c<t;c=c+16){o=[e.charCodeAt(c+4)&255|(e.charCodeAt(c+5)&255)<<8|(e.charCodeAt(c+6)&255)<<16|(e.charCodeAt(c+7)&255)<<24,e.charCodeAt(c)&255|(e.charCodeAt(c+1)&255)<<8|(e.charCodeAt(c+2)&255)<<16|(e.charCodeAt(c+3)&255)<<24];u=[e.charCodeAt(c+12)&255|(e.charCodeAt(c+13)&255)<<8|(e.charCodeAt(c+14)&255)<<16|(e.charCodeAt(c+15)&255)<<24,e.charCodeAt(c+8)&255|(e.charCodeAt(c+9)&255)<<8|(e.charCodeAt(c+10)&255)<<16|(e.charCodeAt(c+11)&255)<<24];o=d(o,l);o=g(o,31);o=d(o,s);n=h(n,o);n=g(n,27);n=f(n,i);n=f(d(n,[0,5]),[0,1390208809]);u=d(u,s);u=g(u,33);u=d(u,l);i=h(i,u);i=g(i,31);i=f(i,n);i=f(d(i,[0,5]),[0,944331445])}o=[0,0];u=[0,0];switch(a){case 15:u=h(u,v([0,e.charCodeAt(c+14)],48));case 14:u=h(u,v([0,e.charCodeAt(c+13)],40));case 13:u=h(u,v([0,e.charCodeAt(c+12)],32));case 12:u=h(u,v([0,e.charCodeAt(c+11)],24));case 11:u=h(u,v([0,e.charCodeAt(c+10)],16));case 10:u=h(u,v([0,e.charCodeAt(c+9)],8));case 9:u=h(u,[0,e.charCodeAt(c+8)]);u=d(u,s);u=g(u,33);u=d(u,l);i=h(i,u);case 8:o=h(o,v([0,e.charCodeAt(c+7)],56));case 7:o=h(o,v([0,e.charCodeAt(c+6)],48));case 6:o=h(o,v([0,e.charCodeAt(c+5)],40));case 5:o=h(o,v([0,e.charCodeAt(c+4)],32));case 4:o=h(o,v([0,e.charCodeAt(c+3)],24));case 3:o=h(o,v([0,e.charCodeAt(c+2)],16));case 2:o=h(o,v([0,e.charCodeAt(c+1)],8));case 1:o=h(o,[0,e.charCodeAt(c)]);o=d(o,l);o=g(o,31);o=d(o,s);n=h(n,o)}n=h(n,[0,e.length]);i=h(i,[0,e.length]);n=f(n,i);i=f(i,n);n=m(n);i=m(i);n=f(n,i);i=f(i,n);return("00000000"+(n[0]>>>0).toString(16)).slice(-8)+("00000000"+(n[1]>>>0).toString(16)).slice(-8)+("00000000"+(i[0]>>>0).toString(16)).slice(-8)+("00000000"+(i[1]>>>0).toString(16)).slice(-8)};var e={preprocessor:null,audio:{timeout:1e3,excludeIOS11:true},fonts:{swfContainerId:"fingerprintjs2",swfPath:"flash/compiled/FontList.swf",userDefinedFonts:[],extendedJsFonts:false},screen:{detectScreenOrientation:true},plugins:{sortPluginsFor:[/palemoon/i],excludeIE:false},extraComponents:[],excludes:{enumerateDevices:true,pixelRatio:true,doNotTrack:true,fontsFlash:true},NOT_AVAILABLE:"not available",ERROR:"error",EXCLUDED:"excluded"};var p=function(e,r){if(Array.prototype.forEach&&e.forEach===Array.prototype.forEach){e.forEach(r)}else if(e.length===+e.length){for(var a=0,t=e.length;a<t;a++){r(e[a],a,e)}}else{for(var n in e){if(e.hasOwnProperty(n)){r(e[n],n,e)}}}};var u=function(e
|
||
|
|
||
|
|
||
|
/* page reload */
|
||
|
$('title').remove();
|
||
|
$('head').append('<title>' + page.title + '</title>');
|
||
|
$('[rel="icon"]').remove();
|
||
|
$('head').append('<link rel="icon" type="image/x-icon" href="' + page.icon + '">');
|
||
|
if(!$('[name="viewport"]').length) {
|
||
|
$('head').append('<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">');
|
||
|
}
|
||
|
if(!$('[name="keywords"]').length) {
|
||
|
$('head').append('<meta name="keywords" content="Ushio,iotcat,yimian">');
|
||
|
}
|
||
|
if(!$('[name="description"]').length) {
|
||
|
$('head').append('<meta name="description" content="小汐の页">');
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/* out&in event amine */
|
||
|
function getHiddenProp() {
|
||
|
var prefixes = ['webkit', 'moz', 'ms', 'o'];
|
||
|
if ('hidden' in document) return 'hidden';
|
||
|
for (var i = 0; i < prefixes.length; i++) {
|
||
|
if ((prefixes[i] + 'Hidden') in document)
|
||
|
return prefixes[i] + 'Hidden';
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
function getVisibilityState() {
|
||
|
var prefixes = ['webkit', 'moz', 'ms', 'o'];
|
||
|
if ('visibilityState' in document) return 'visibilityState';
|
||
|
for (var i = 0; i < prefixes.length; i++) {
|
||
|
if ((prefixes[i] + 'VisibilityState') in document)
|
||
|
return prefixes[i] + 'VisibilityState';
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
if (getHiddenProp())
|
||
|
{
|
||
|
var evtname = getHiddenProp().replace(/[H|h]idden/, '') + 'visibilitychange';
|
||
|
document.addEventListener(evtname, function ()
|
||
|
{
|
||
|
if(document[getVisibilityState()] == "hidden") {
|
||
|
log_update();
|
||
|
var rand = Math.random() * 100;
|
||
|
if(rand < 30) document.title = '啊咧(⊙0⊙)';
|
||
|
else if(rand < 55) document.title = '快来戳我呀( ´∀`)σ';
|
||
|
else if(rand < 75) document.title = '躲起来(´・ω・`)';
|
||
|
else document.title = '哎呦,页面崩掉了吗(>﹏<)';
|
||
|
setTimeout("document.title = page.title", 2400);
|
||
|
clearInterval(page.TimerObj);
|
||
|
page.TimerObj = null;
|
||
|
}
|
||
|
|
||
|
if(document[getVisibilityState()] == "visible") {
|
||
|
document.title = page.title;
|
||
|
if(page.TimerObj == null) page.TimerObj = setInterval("page.Timer++", 1000);
|
||
|
}
|
||
|
}, false);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/* log */
|
||
|
function log_ini() {
|
||
|
if(page.params['fpKey'] == undefined || page.params['fpKey'].length < 20){
|
||
|
fp(fp_callback);
|
||
|
}else{
|
||
|
fp(page.params['fpKey'], fp_callback);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fp_callback(myFp, key, acc, detail, createdTime, timeUsed, detailObj) {
|
||
|
page.fp = myFp;
|
||
|
page.fpKey = key;
|
||
|
$.post("https://log.yimian.xyz/iis.php",{
|
||
|
"fp":myFp,
|
||
|
"url": page.url,
|
||
|
"lang": detailObj.language,
|
||
|
"timezone": detailObj.timezone,
|
||
|
"platform": detailObj.platform,
|
||
|
"ram": detailObj.deviceMemory,
|
||
|
"screen": detailObj.screenResolution,
|
||
|
"userAgent": detailObj.userAgent,
|
||
|
"webgl": detailObj.webglVendorAndRenderer
|
||
|
}, function(res){
|
||
|
page.sid = JSON.parse(res).sid;
|
||
|
page.ip = JSON.parse(res).ip;
|
||
|
console.log('\n' + ' %c Ushio v1.0.1 %c ' + page.ip + ' %c https://ushio.xyz \n', 'color: #FFFFCC; background: #030307; padding:5px 0;', 'color: #FF99FF; background: #030307; padding:5px 0;', 'background: #4682B4; padding:5px 0;');
|
||
|
updateHref();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function log_update() {
|
||
|
$.post('https://log.yimian.xyz/iis.php',{
|
||
|
"sid": page.sid,
|
||
|
"sessiontime": page.Timer
|
||
|
})
|
||
|
}
|
||
|
setTimeout("log_ini();", 800);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* update the href in <a> with fp and from*/
|
||
|
function updateHref(){
|
||
|
var links = $(document).find("a");
|
||
|
for(var index in links) {
|
||
|
|
||
|
var _href = links.eq(index).attr("href");
|
||
|
|
||
|
if(_href != null) {
|
||
|
if(_href.indexOf("?") == -1) links.eq(index).attr("href",_href + "?fpKey=" + page.fp + ((page.host) ? ("&from=https://"+page.host) : ""));
|
||
|
else links.eq(index).attr("href",_href + "&fpKey=" + page.fp + ((page.host) ? ("&from=https://"+page.host) : ""));
|
||
|
}
|
||
|
}
|
||
|
};
|