You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The above filter does not work on the website.
The anti-adblock script requires result of a visitor's environment named as components variable.
Its server requires result of x64hash128 hash function to proceed.
It seems that it is okay to return random int for the hash function if the server does not track the visitor and check its value.
Screenshots
The anti-adblock script
initFingerprintJS();functioninitFingerprintJS(){varoptions={fonts: {extendedJsFonts: true}};try{varresult=function(components){varvalues=components.map(function(component){returncomponent.value});varmurmur=Fingerprint2.x64hash128(values.join(''),31);document.getElementById('hash').value=murmur;document.forms[0].submit();};varjs=document.createElement('script');js.type='text/javascript';/*js.src = 'https://cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/2.1.0/fingerprint2.min.js';*/js.src='/public/fingerprint2.js';document.head.appendChild(js);js.onerror=function(evt){document.write('<h1>오류가 있습니다.</h1><h2>AD BLOCK이 설치되어 있다면 해제해야 진행 가능합니다.</h2>');}js.onload=function(){setTimeout(function(){if(window.requestIdleCallback){requestIdleCallback(function(){Fingerprint2.get(options,result);})}else{Fingerprint2.get(options,result);}},1000);};}catch(e){document.write(e);}}
//// Given a string and an optional seed as an int, returns a 128 bit// hash using the x64 flavor of MurmurHash3, as an unsigned hex.//varx64hash128=function(key,seed){key=key||'';seed=seed||0;varremainder=key.length%16;varbytes=key.length-remainder;varh1=[0,seed];varh2=[0,seed];vark1=[0,0];vark2=[0,0];varc1=[0x87c37b91,0x114253d5];varc2=[0x4cf5ad43,0x2745937f];for(vari=0;i<bytes;i=i+16){k1=[(key.charCodeAt(i+4)&0xff)|((key.charCodeAt(i+5)&0xff)<<8)|((key.charCodeAt(i+6)&0xff)<<16)|((key.charCodeAt(i+7)&0xff)<<24),(key.charCodeAt(i)&0xff)|((key.charCodeAt(i+1)&0xff)<<8)|((key.charCodeAt(i+2)&0xff)<<16)|((key.charCodeAt(i+3)&0xff)<<24),];k2=[(key.charCodeAt(i+12)&0xff)|((key.charCodeAt(i+13)&0xff)<<8)|((key.charCodeAt(i+14)&0xff)<<16)|((key.charCodeAt(i+15)&0xff)<<24),(key.charCodeAt(i+8)&0xff)|((key.charCodeAt(i+9)&0xff)<<8)|((key.charCodeAt(i+10)&0xff)<<16)|((key.charCodeAt(i+11)&0xff)<<24),];k1=x64Multiply(k1,c1);k1=x64Rotl(k1,31);k1=x64Multiply(k1,c2);h1=x64Xor(h1,k1);h1=x64Rotl(h1,27);h1=x64Add(h1,h2);h1=x64Add(x64Multiply(h1,[0,5]),[0,0x52dce729]);k2=x64Multiply(k2,c2);k2=x64Rotl(k2,33);k2=x64Multiply(k2,c1);h2=x64Xor(h2,k2);h2=x64Rotl(h2,31);h2=x64Add(h2,h1);h2=x64Add(x64Multiply(h2,[0,5]),[0,0x38495ab5]);}k1=[0,0];k2=[0,0];switch(remainder){case15:
k2=x64Xor(k2,x64LeftShift([0,key.charCodeAt(i+14)],48));// fallthroughcase14:
k2=x64Xor(k2,x64LeftShift([0,key.charCodeAt(i+13)],40));// fallthroughcase13:
k2=x64Xor(k2,x64LeftShift([0,key.charCodeAt(i+12)],32));// fallthroughcase12:
k2=x64Xor(k2,x64LeftShift([0,key.charCodeAt(i+11)],24));// fallthroughcase11:
k2=x64Xor(k2,x64LeftShift([0,key.charCodeAt(i+10)],16));// fallthroughcase10:
k2=x64Xor(k2,x64LeftShift([0,key.charCodeAt(i+9)],8));// fallthroughcase9:
k2=x64Xor(k2,[0,key.charCodeAt(i+8)]);k2=x64Multiply(k2,c2);k2=x64Rotl(k2,33);k2=x64Multiply(k2,c1);h2=x64Xor(h2,k2);// fallthroughcase8:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+7)],56));// fallthroughcase7:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+6)],48));// fallthroughcase6:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+5)],40));// fallthroughcase5:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+4)],32));// fallthroughcase4:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+3)],24));// fallthroughcase3:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+2)],16));// fallthroughcase2:
k1=x64Xor(k1,x64LeftShift([0,key.charCodeAt(i+1)],8));// fallthroughcase1:
k1=x64Xor(k1,[0,key.charCodeAt(i)]);k1=x64Multiply(k1,c1);k1=x64Rotl(k1,31);k1=x64Multiply(k1,c2);h1=x64Xor(h1,k1);// fallthrough}h1=x64Xor(h1,[0,key.length]);h2=x64Xor(h2,[0,key.length]);h1=x64Add(h1,h2);h2=x64Add(h2,h1);h1=x64Fmix(h1);h2=x64Fmix(h2);h1=x64Add(h1,h2);h2=x64Add(h2,h1);return(('00000000'+(h1[0]>>>0).toString(16)).slice(-8)+('00000000'+(h1[1]>>>0).toString(16)).slice(-8)+('00000000'+(h2[0]>>>0).toString(16)).slice(-8)+('00000000'+(h2[1]>>>0).toString(16)).slice(-8));};
Prerequisites
I tried to reproduce the issue when...
Description
Related issue: AdguardTeam/AdguardFilters#156794
The above filter does not work on the website.
The anti-adblock script requires result of a visitor's environment named as
components
variable.Its server requires result of
x64hash128
hash function to proceed.It seems that it is okay to return random int for the hash function if the server does not track the visitor and check its value.
Screenshots
The anti-adblock script
components variable
x64hash128 hash function
A specific URL where the issue occurs.
https://new-in.pmirnc.com/api/in/ni/?sid=230713MDAx&grp=TO&tsid=bLjC6Ht&vcidx=1382261
Steps to Reproduce
Just visit the website.
Expected behavior
The website redirects me.
Actual behavior
It does not.
uBO version
1.50.0
Browser name and version
Mozilla Firefox Developer Edition 116.0b6
Operating System and version
Ubuntu 23.04
The text was updated successfully, but these errors were encountered: