Skip to content

Instantly share code, notes, and snippets.

@hondajojo
Created August 3, 2018 08:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hondajojo/c95fb02519a5592b15a1aacf1c543804 to your computer and use it in GitHub Desktop.
Save hondajojo/c95fb02519a5592b15a1aacf1c543804 to your computer and use it in GitHub Desktop.
# coding:utf8
import js2py
def encrypted(password):
js_func1 = """
function i(t, e, n, i, a, o) {
var r, s, c, l, m, d, u, p, h, f, g, b, v, w, y = new Array(16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 1024, 16843776, 16843780, 1024, 16778244, 16842756, 16777216, 4, 1028, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 1028, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 1024, 16842756, 65536, 66560, 16777220, 1024, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 1028, 66564, 16843776, 1028, 16778240, 16778240, 0, 65540, 66560, 0, 16842756),
x = new Array(-2146402272, -2147450880, 32768, 1081376, 1048576, 32, -2146435040, -2147450848, -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 1048576, 32, -2146435040, 1081344, 1048608, -2147450848, 0, -2147483648, 32768, 1081376, -2146435072, 1048608, -2147483616, 0, 1081344, 32800, -2146402304, -2146435072, 32800, 0, 1081376, -2146435040, 1048576, -2147450848, -2146435072, -2146402304, 32768, -2146435072, -2147450880, 32, -2146402272, 1081376, 32, 32768, -2147483648, 32800, -2146402304, 1048576, -2147483616, 1048608, -2147450848, -2147483616, 1048608, 1081344, 0, -2147450880, 32800, -2147483648, -2146435040, -2146402272, 1081344),
k = new Array(520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 512, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 512, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 512, 131080, 134349320, 134218240, 134217736, 512, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584),
S = new Array(8396801, 8321, 8321, 128, 8396928, 8388737, 8388609, 8193, 0, 8396800, 8396800, 8396929, 129, 0, 8388736, 8388609, 1, 8192, 8388608, 8396801, 128, 8388608, 8193, 8320, 8388737, 1, 8320, 8388736, 8192, 8396928, 8396929, 129, 8388736, 8388609, 8396800, 8396929, 129, 0, 0, 8396800, 8320, 8388736, 8388737, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 8192, 8388609, 8193, 8396928, 8388737, 8193, 8320, 8388608, 8396801, 128, 8388608, 8192, 8396928),
C = new Array(256, 34078976, 34078720, 1107296512, 524288, 256, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 256, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 256, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080),
T = new Array(536870928, 541065216, 16384, 541081616, 541065216, 16, 541081616, 4194304, 536887296, 4210704, 4194304, 536870928, 4194320, 536887296, 536870912, 16400, 0, 4194320, 536887312, 16384, 4210688, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 4210688, 541081600, 536870912, 536887296, 16, 541065232, 4210688, 541081616, 4194304, 16400, 536870928, 4194304, 536887296, 536870912, 16400, 536870928, 541081616, 4210688, 541065216, 4210704, 541081600, 0, 541065232, 16, 16384, 541065216, 4210704, 16384, 4194320, 536887312, 0, 541081600, 536870912, 4194320, 536887312),
O = new Array(2097152, 69206018, 67110914, 0, 2048, 67110914, 2099202, 69208064, 69208066, 2097152, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 2097154, 67110912, 67108866, 69206016, 69208064, 2097154, 69206016, 2048, 2050, 69208066, 2099200, 2, 67108864, 2099200, 67108864, 2099200, 2097152, 67110914, 67110914, 69206018, 69206018, 2, 2097154, 67108864, 67110912, 2097152, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 2099200, 0, 2, 69208066, 0, 2099202, 69206016, 2048, 67108866, 67110912, 2048, 2097154),
_ = new Array(268439616, 4096, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 4096, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 4096, 64, 268697664, 4096, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696),
I = function (t) {
for (var e, n, i, a = new Array(0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964), o = new Array(0, 1, 1048576, 1048577, 67108864, 67108865, 68157440, 68157441, 256, 257, 1048832, 1048833, 67109120, 67109121, 68157696, 68157697), r = new Array(0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272, 0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272), s = new Array(0, 2097152, 134217728, 136314880, 8192, 2105344, 134225920, 136323072, 131072, 2228224, 134348800, 136445952, 139264, 2236416, 134356992, 136454144), c = new Array(0, 262144, 16, 262160, 0, 262144, 16, 262160, 4096, 266240, 4112, 266256, 4096, 266240, 4112, 266256), l = new Array(0, 1024, 32, 1056, 0, 1024, 32, 1056, 33554432, 33555456, 33554464, 33555488, 33554432, 33555456, 33554464, 33555488), m = new Array(0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746, 0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746), d = new Array(0, 65536, 2048, 67584, 536870912, 536936448, 536872960, 536938496, 131072, 196608, 133120, 198656, 537001984, 537067520, 537004032, 537069568), u = new Array(0, 262144, 0, 262144, 2, 262146, 2, 262146, 33554432, 33816576, 33554432, 33816576, 33554434, 33816578, 33554434, 33816578), p = new Array(0, 268435456, 8, 268435464, 0, 268435456, 8, 268435464, 1024, 268436480, 1032, 268436488, 1024, 268436480, 1032, 268436488), h = new Array(0, 32, 0, 32, 1048576, 1048608, 1048576, 1048608, 8192, 8224, 8192, 8224, 1056768, 1056800, 1056768, 1056800), f = new Array(0, 16777216, 512, 16777728, 2097152, 18874368, 2097664, 18874880, 67108864, 83886080, 67109376, 83886592, 69206016, 85983232, 69206528, 85983744), g = new Array(0, 4096, 134217728, 134221824, 524288, 528384, 134742016, 134746112, 16, 4112, 134217744, 134221840, 524304, 528400, 134742032, 134746128), b = new Array(0, 4, 256, 260, 0, 4, 256, 260, 1, 5, 257, 261, 1, 5, 257, 261), v = t.length > 8 ? 3 : 1, w = new Array(32 * v), y = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0), x = 0, k = 0, S = 0; S < v; S++) {
var C = t.charCodeAt(x++) << 24 | t.charCodeAt(x++) << 16 | t.charCodeAt(x++) << 8 | t.charCodeAt(x++),
T = t.charCodeAt(x++) << 24 | t.charCodeAt(x++) << 16 | t.charCodeAt(x++) << 8 | t.charCodeAt(x++);
C ^= (i = 252645135 & (C >>> 4 ^ T)) << 4,
C ^= i = 65535 & ((T ^= i) >>> -16 ^ C),
C ^= (i = 858993459 & (C >>> 2 ^ (T ^= i << -16))) << 2,
C ^= i = 65535 & ((T ^= i) >>> -16 ^ C),
C ^= (i = 1431655765 & (C >>> 1 ^ (T ^= i << -16))) << 1,
C ^= i = 16711935 & ((T ^= i) >>> 8 ^ C),
i = (C ^= (i = 1431655765 & (C >>> 1 ^ (T ^= i << 8))) << 1) << 8 | (T ^= i) >>> 20 & 240,
C = T << 24 | T << 8 & 16711680 | T >>> 8 & 65280 | T >>> 24 & 240,
T = i;
for (var O = 0; O < y.length; O++)
y[O] ? (C = C << 2 | C >>> 26,
T = T << 2 | T >>> 26) : (C = C << 1 | C >>> 27,
T = T << 1 | T >>> 27),
T &= -15,
e = a[(C &= -15) >>> 28] | o[C >>> 24 & 15] | r[C >>> 20 & 15] | s[C >>> 16 & 15] | c[C >>> 12 & 15] | l[C >>> 8 & 15] | m[C >>> 4 & 15],
n = d[T >>> 28] | u[T >>> 24 & 15] | p[T >>> 20 & 15] | h[T >>> 16 & 15] | f[T >>> 12 & 15] | g[T >>> 8 & 15] | b[T >>> 4 & 15],
i = 65535 & (n >>> 16 ^ e),
w[k++] = e ^ i,
w[k++] = n ^ i << 16
}
return w
}(t),
E = 0,
A = e.length,
P = 0,
R = 32 == I.length ? 3 : 9;
p = 3 == R ? n ? new Array(0, 32, 2) : new Array(30, -2, -2) : n ? new Array(0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array(94, 62, -2, 32, 64, 2, 30, -2, -2),
2 == o ? e += " " : 1 == o ? (c = 8 - A % 8,
e += String.fromCharCode(c, c, c, c, c, c, c, c),
8 == c && (A += 8)) : o || (e += "\0\0\0\0\0\0\0\0");
var q = "",
D = "";
for (1 == i && (h = a.charCodeAt(E++) << 24 | a.charCodeAt(E++) << 16 | a.charCodeAt(E++) << 8 | a.charCodeAt(E++),
g = a.charCodeAt(E++) << 24 | a.charCodeAt(E++) << 16 | a.charCodeAt(E++) << 8 | a.charCodeAt(E++),
E = 0); E < A;) {
for (d = e.charCodeAt(E++) << 24 | e.charCodeAt(E++) << 16 | e.charCodeAt(E++) << 8 | e.charCodeAt(E++),
u = e.charCodeAt(E++) << 24 | e.charCodeAt(E++) << 16 | e.charCodeAt(E++) << 8 | e.charCodeAt(E++),
1 == i && (n ? (d ^= h,
u ^= g) : (f = h,
b = g,
h = d,
g = u)),
d ^= (c = 252645135 & (d >>> 4 ^ u)) << 4,
d ^= (c = 65535 & (d >>> 16 ^ (u ^= c))) << 16,
d ^= c = 858993459 & ((u ^= c) >>> 2 ^ d),
d ^= c = 16711935 & ((u ^= c << 2) >>> 8 ^ d),
d = (d ^= (c = 1431655765 & (d >>> 1 ^ (u ^= c << 8))) << 1) << 1 | d >>> 31,
u = (u ^= c) << 1 | u >>> 31,
s = 0; s < R; s += 3) {
for (v = p[s + 1],
w = p[s + 2],
r = p[s]; r != v; r += w)
l = u ^ I[r],
m = (u >>> 4 | u << 28) ^ I[r + 1],
c = d,
d = u,
u = c ^ (x[l >>> 24 & 63] | S[l >>> 16 & 63] | T[l >>> 8 & 63] | _[63 & l] | y[m >>> 24 & 63] | k[m >>> 16 & 63] | C[m >>> 8 & 63] | O[63 & m]);
c = d,
d = u,
u = c
}
u = u >>> 1 | u << 31,
u ^= c = 1431655765 & ((d = d >>> 1 | d << 31) >>> 1 ^ u),
u ^= (c = 16711935 & (u >>> 8 ^ (d ^= c << 1))) << 8,
u ^= (c = 858993459 & (u >>> 2 ^ (d ^= c))) << 2,
u ^= c = 65535 & ((d ^= c) >>> 16 ^ u),
u ^= c = 252645135 & ((d ^= c << 16) >>> 4 ^ u),
d ^= c << 4,
1 == i && (n ? (h = d,
g = u) : (d ^= f,
u ^= b)),
D += String.fromCharCode(d >>> 24, d >>> 16 & 255, d >>> 8 & 255, 255 & d, u >>> 24, u >>> 16 & 255, u >>> 8 & 255, 255 & u),
512 == (P += 8) && (q += D,
D = "",
P = 0)
}
return q + D
}
"""
js_func2 = """
function b(t) {
for (var e = "", n = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"), i = 0; i < t.length; i++)
e += n[t.charCodeAt(i) >> 4] + n[15 & t.charCodeAt(i)];
return e
}
"""
def1 = js2py.eval_js(js_func1)
t = def1("8D54E5D0", password, 1, 1, "8D54E5D0", 1)
def2 = js2py.eval_js(js_func2)
encrypted_password = def2(t)
return encrypted_password
if __name__ == '__main__':
print(encrypted("000000"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment