Commit 7f77558d authored by wang's avatar wang

反解析第一步成功

parent 76f67d10
......@@ -11,20 +11,21 @@ print(res)
import struct
keys = [
2309786432, -961230798,
-2043136813, 781153369,
-73126532, 827758736,
577688905, 2634614699,
301506695, 661298884,
2130011393, 1224834677,
3255579391, 1354993310,
-1476732306, -2669926629
3621878001, 1246704098,
-1612094017, 529399774,
3097799895, 2467146295,
528884734, 1852669328,
-278555461, -170482350,
183697865, 2252209194,
1216198928, -1693954187,
829512098, -344800391
]
res = []
for k in keys:
res.extend(list(bytearray(struct.pack('l', k)))[:4])
print(res)
r = [
64, 139, 172, 137, 50, 200, 180, 198, 211, 52, 56,
134, 89, 116, 143, 46, 124, 45, 164, 251, 144, 152,
......@@ -34,32 +35,33 @@ r = [
80, 110, 218, 250, 167, 27, 39, 220, 96
]
self.devicedata = {"parameters": {"antialias": True, "maxAnisotropy": 16, "dimensions": ["11", "11024", "3276732767"],
"params": {"alphaBits": 8, "blueBits": 8, "greenBits": 8, "redBits": 8,
"depthBits": 24, "maxCombinedTextureImageUnits": 32,
"maxCubeMapTextureSize": 16384, "maxFragmentUniformVectors": 1024,
"maxRenderbufferSize": 16384, "maxTextureImageUnits": 16,
"maxTextureSize": 16384, "maxVaryingVectors": 30, "maxVertexAttribs": 16,
"maxVertexTextureImageUnits": 16, "maxVertexUniformVectors": 4096,
"renderer": "WebKit WebGL",
"shadingLanguageVersion": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)",
"stencilBits": 0, "vendor": "WebKit",
"version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)"},
"debugInfo": {"vendor": "Google Inc.", "renderer": random.choice(GRAPHICSDRIVER)}},
"shaderPrecisions": ["23127127", "23127127", "23127127", "23127127", "23127127", "23127127", "03130",
"03130", "03130", "03130", "03130", "03130"],
"supportedExtensions": ["ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float",
"EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
"EXT_shader_texture_lod", "EXT_texture_filter_anisotropic",
"WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB",
"KHR_parallel_shader_compile", "OES_element_index_uint",
"OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear",
"OES_texture_half_float", "OES_texture_half_float_linear",
"OES_vertex_array_object", "WEBGL_color_buffer_float",
"WEBGL_compressed_texture_s3tc", "WEBKIT_WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info",
"WEBGL_debug_shaders", "WEBGL_depth_texture", "WEBKIT_WEBGL_depth_texture",
"WEBGL_draw_buffers", "WEBGL_lose_context", "WEBKIT_WEBGL_lose_context"],
"contextProperties": -368668372}
# self.devicedata = {
# "parameters": {"antialias": True, "maxAnisotropy": 16, "dimensions": ["11", "11024", "3276732767"],
# "params": {"alphaBits": 8, "blueBits": 8, "greenBits": 8, "redBits": 8,
# "depthBits": 24, "maxCombinedTextureImageUnits": 32,
# "maxCubeMapTextureSize": 16384, "maxFragmentUniformVectors": 1024,
# "maxRenderbufferSize": 16384, "maxTextureImageUnits": 16,
# "maxTextureSize": 16384, "maxVaryingVectors": 30, "maxVertexAttribs": 16,
# "maxVertexTextureImageUnits": 16, "maxVertexUniformVectors": 4096,
# "renderer": "WebKit WebGL",
# "shadingLanguageVersion": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)",
# "stencilBits": 0, "vendor": "WebKit",
# "version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)"},
# "debugInfo": {"vendor": "Google Inc.", "renderer": random.choice(GRAPHICSDRIVER)}},
# "shaderPrecisions": ["23127127", "23127127", "23127127", "23127127", "23127127", "23127127", "03130",
# "03130", "03130", "03130", "03130", "03130"],
# "supportedExtensions": ["ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float",
# "EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
# "EXT_shader_texture_lod", "EXT_texture_filter_anisotropic",
# "WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB",
# "KHR_parallel_shader_compile", "OES_element_index_uint",
# "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear",
# "OES_texture_half_float", "OES_texture_half_float_linear",
# "OES_vertex_array_object", "WEBGL_color_buffer_float",
# "WEBGL_compressed_texture_s3tc", "WEBKIT_WEBGL_compressed_texture_s3tc",
# "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info",
# "WEBGL_debug_shaders", "WEBGL_depth_texture", "WEBKIT_WEBGL_depth_texture",
# "WEBGL_draw_buffers", "WEBGL_lose_context", "WEBKIT_WEBGL_lose_context"],
# "contextProperties": -368668372}
``
28,
22,28,65,7,
122,74,129,24,234,55, [https://]
100,241,
58,37,96,21,239,191,165,255,194,149,136,44,148,54,245, [www.jetblue.com]
230
``
```angular2html
计算 https:
get https: length == 6
get https: 0 == h
104 == 0 === false
104 < 128 == true
3 + 1 == 4
4 % 4 == 0
0 == 0 === true
-1203837086 ^ -1330227536 == 143176146
-1330227536 << 26 == -1073741824
-1073741824 | 46324058 == -1027417766
143176146 ^ -1027417766 == -901093240
143176146 << 9 == 291742720
-901093240 ^ 291742720 == -618017656
143176146 == true === false
143176146 << 13 == 372916224
255 & -2534064622 == 18
104 ^ 18 == 122
[ 22, 28, 65, 7 ] set [ '4' ] == [ 122 ]
0 + 1 == 1
get https: 1 == t
116 == 0 === false
116 < 128 == true
4 + 1 == 5
1 % 4 == 1
1 == 0 === false
1 == 1 === true
-2534064622 >> 8 == 6878526
6878526 & 255 == 62
116 ^ 62 == 74
[ 22, 28, 65, 7, 122 ] set [ '5' ] == [ 74 ]
1 + 1 == 2
get https: 2 == t
116 == 0 === false
116 < 128 == true
5 + 1 == 6
2 % 4 == 2
2 == 0 === false
2 == 1 === false
2 == 2 === true
-2534064622 >> 16 == 26869
26869 & 255 == 245
116 ^ 245 == 129
[ 22, 28, 65, 7, 122, 74 ] set [ '6' ] == [ 129 ]
2 + 1 == 3
get https: 3 == p
112 == 0 === false
112 < 128 == true
6 + 1 == 7
3 % 4 == 3
3 == 0 === false
3 == 1 === false
3 == 2 === false
3 == 3 === true
104 & 255 == 104
112 ^ 104 == 24
[
22, 28, 65, 7,
122, 74, 129
] set [ '7' ] == [ 24 ]
3 + 1 == 4
get https: 4 == s
115 == 0 === false
115 < 128 == true
7 + 1 == 8
4 % 4 == 0
0 == 0 === true
372916497 ^ -618017656 == -854356583
-618017656 << 26 == 536870912
536870912 | 57452338 == 594323250
-854356583 ^ 594323250 == -293655893
-854356583 << 9 == 656093696
-293655893 ^ 656093696 == -916186965
-854356583 == true === false
-854356583 << 13 == 1907564544
255 & -245101159 == 153
115 ^ 153 == 234
[
22, 28, 65, 7,
122, 74, 129, 24
] set [ '8' ] == [ 234 ]
4 + 1 == 5
get https: 5 == :
58 == 0 === false
58 < 128 == true
44933 22,28,65,7,122,74,129,24,234
8 + 1 == 9
1 % 4 == 1
1 == 0 === false
1 == 1 === true
-245101159 >> 8 == -957427
-957427 & 255 == 13
58 ^ 13 == 55
[
22, 28, 65, 7,
122, 74, 129, 24,
234
] set [ '9' ] == [ 55 ]
```
\ No newline at end of file
function plus(x, i, j) {
// console.log('plus', i, j, x[i] + x[j])
// console.log('plus', x[i], '+', x[j], '==', x[i] + x[j])
x[i] = x[i] + x[j]
// console.log('plus', x[i] + '&', 4294967295, '==', x[i] & 4294967295)
x[i] = x[i] & 4294967295
}
function rrot(x, i, j, k) {
// console.log('rrot',i, j, k)
s = x[i] ^ x[j]
// console.log('rrot', x[i], x[j], s)
// s = s & 4294967295
// -2447
x[i] = (((s << k) & 4294967295) | (s >>> (32 - k))) & 4294967295
// x[i] =
// console.log('')
// console.log('rrot', i, j, k, x[i])
}
encryp = function (key, inp, iv1, iv2, s1, s2, roundcount) {
k = [[0, 4, 8, 12], [1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [0, 5, 10, 15], [1, 6, 11, 12], [2, 7, 8, 13],
[3, 4, 9, 14]]
l = [16, 12, 8, 7]
y = []
y.push(...s1)
y.push(...key)
y.push(0, 0, iv1, iv2)
v1 = s2
out = []
inpl = inp.length
let t = v1 & 4294967295
if (t < 0) {
t = t + 4294967295 + 1
}
y[12] = t
y[13] = parseInt(v1 / 4294967296)
x = [].slice.call(y)
if (out.length < inpl) {
let idx = 0
for (let i = 0; i < roundcount;) {
for (let j = 0; j < k.length; j++) {
let p = k[j];
for (let m = 0; m < 4; m++) {
plus(x, p[2 * m % 4], p[2 * m % 4 + 1])
rrot(x, p[(2 * m + 3) % 4], p[2 * m % 4], l[m % 4])
// console.log(x + '')
}
}
// console.log(i, x + '')
// console.log()
if ((idx + 1) % 4 === 0) {
for (let i = 0; i < 16; i++) {
x[i] = (x[i] + y[i]) % 4294967296
}
z = []
for (let i = 0; i < x.length; i++) {
let p = x[i]
p = p & 4294967295
z.push(p & 255)
z.push((p >> 8) & 255)
z.push((p >> 16) & 255)
z.push((p >> 24) & 255)
}
// console.log(z + '')
while (out.length < inpl && z.length > 0) {
let zn = z.splice(0, 1);
// console.log(inp[out.length], '^', zn, '==>', inp[out.length] ^ zn)
out.push(inp[out.length] ^ zn)
}
// console.log(out + '')
v1 = (v1 + 1) % 9007199254740992
let t = v1 & 4294967295
if (t < 0) {
t = t + 4294967295 + 1
}
y[12] = t
y[13] = parseInt(v1 / 4294967296)
x = [].slice.call(y)
i++
}
idx++;
}
console.log()
console.log()
console.log()
// for (let i = 0; i < 16; i++) {
// x[i] = (x[i] + y[i]) % 4294967296
// }
// z = []
// for (let i = 0; i < x.length; i++) {
// let p = x[i]
// p = p & 4294967295
// z.push(p & 255)
// z.push((p >> 8) & 255)
// z.push((p >> 16) & 255)
// z.push((p >> 24) & 255)
// }
// while (out.length < inpl && z.length > 0) {
// out.push(inp[out.length] ^ z.pop(0))
// }
}
return out
}
let key = [2047861029, 453967604, 1188017424, 886685092, 1231819529, 845208169, 104545809, 2142949960];
let inp = [59, 137, 124, 130, 188, 106, 119, 82, 192, 106, 112, 163, 32, 242, 230, 5, 220, 47, 33, 3, 16, 74, 220, 223, 229, 233, 22, 88, 145, 217, 218, 158, 198, 231, 142, 104, 128, 118, 100, 183, 65, 107, 202, 201, 216, 51, 191, 72, 170, 64, 6, 127, 249, 208, 227, 238, 133, 139, 164, 55, 131, 79, 200, 35, 137, 157, 101, 41, 103, 41, 49, 40, 76, 149, 254, 136, 23, 21, 214, 83, 81, 85, 26, 160, 131, 131, 153, 24, 190, 153, 195, 65, 229, 122, 232, 53, 21, 33, 253, 44, 182, 164, 46, 102, 174, 214, 241, 163, 20, 189, 176, 173, 217, 215, 206, 10, 216, 73, 82, 160, 34, 131, 20, 31, 100, 245, 103, 19, 236, 69, 90, 42, 2, 181, 203, 245, 16, 36, 92, 102, 177, 38, 91, 23, 203, 251, 201, 65, 26, 221, 47, 193, 154, 64, 54, 48, 154, 208, 20, 21, 196, 166, 24, 33, 242, 229, 122, 23, 223, 88, 69, 70, 201, 109, 201, 15, 29, 34, 124, 146, 224, 188, 168, 39, 30, 244, 67, 108, 53, 15, 4, 80, 165, 91, 4, 26, 79, 176, 48, 167, 55, 237, 129, 229, 52, 121, 122, 71, 211, 179, 204, 253, 62, 208, 7, 92, 229, 141, 214, 213, 238, 93, 39, 154, 233, 168, 233, 210, 131, 235, 228, 157, 151, 183, 231, 8, 16, 226, 99, 44, 143, 196, 28, 10, 12, 207, 52, 221, 127, 136, 202, 215, 165, 37, 130, 171, 83, 19, 187, 249, 176, 191, 172, 189, 78, 149, 26, 60, 94, 39, 59, 247, 186, 250, 16, 32, 91, 170, 39, 25, 90, 119, 23, 114, 177, 214, 141, 97, 139, 30, 67, 174, 128, 40, 111, 227, 20, 223, 250, 236, 114, 220, 87, 133, 75, 21, 202, 138, 80, 137, 195, 106, 6, 216, 173, 75, 92, 63, 178, 129, 174, 33, 20, 52, 212, 18, 155, 185, 159, 232, 106, 219, 71, 121, 20, 2, 163, 167, 131, 78, 200, 177, 203, 115, 94, 110, 202, 29, 88, 171, 14, 92, 230, 111, 54, 162, 80, 158, 201, 235, 42, 190, 87, 64, 114, 164, 143, 177, 54, 183, 142, 244, 102, 116, 182, 71, 222, 187, 15, 171, 183, 111, 13, 168, 34, 237, 255, 189, 242, 74, 87, 100, 7, 130, 49, 116, 239, 174, 84, 11, 201, 37, 21, 37, 199, 42, 3, 63, 214, 65, 163, 14, 250, 202, 192, 34, 243, 206, 16, 22, 32, 11, 27, 46, 232, 8, 43, 15, 84, 198, 83, 63, 2, 188, 49, 101, 156, 134, 88, 171, 253, 78, 251, 152, 250, 181, 131, 230, 135, 34, 126, 216, 102, 224, 179, 224, 143, 20, 149, 88, 176, 134, 53, 16, 245, 66, 151, 53, 79, 39, 188, 151, 144, 253, 36, 36, 159, 202, 162, 251, 161, 5, 32, 87, 181, 220, 48, 137, 96, 253, 84, 187, 49, 77, 214, 112, 193, 191, 221, 137, 30, 11, 248, 8, 176, 224, 29, 243, 191, 247, 64, 154, 169, 102, 216, 248, 222, 218, 233, 185, 115, 123, 252, 199, 133, 34, 173, 9, 174, 128, 255, 243, 244, 39, 164, 233, 249, 49, 87, 205, 145, 112, 247, 175, 62, 176, 30, 109, 203, 222, 100, 85, 233, 63, 90, 109, 10, 183, 190, 204, 150, 50, 229, 137, 205, 165, 206, 227, 137, 61, 136, 120, 26, 224, 169, 53, 144, 136, 180, 227, 142, 219, 216, 214, 202, 254, 199, 245, 9, 228, 78, 86, 164, 127, 40, 24, 215, 62, 6, 233, 65, 68, 90, 127, 107, 199, 248, 23, 56, 149, 233, 217, 81, 43, 198, 242, 141, 226, 193, 171, 252, 76, 191, 140, 153, 168, 74, 99, 80, 220, 130, 17, 104, 103, 72, 124, 154, 109, 151, 245, 64, 254, 79, 43, 94, 31, 23, 95, 197, 100, 105, 23, 118, 149, 241, 78, 119, 119, 237, 38, 195, 245, 220, 120, 42, 144, 245, 145, 190, 76, 50, 77, 194, 239, 110, 17, 111, 108, 74, 134, 137, 78, 35, 15, 98, 48, 246, 176, 58, 72, 206, 176, 198, 55, 15, 81, 231, 28, 148, 219, 76, 127, 56, 205, 46, 67, 131, 84, 67, 137, 96, 143, 24, 6, 226, 161, 195, 150, 19, 184, 58, 164, 160, 161, 167, 31, 174, 56, 18, 153, 211, 8, 192, 199, 181, 96, 41, 152, 21, 83, 224, 93, 181, 189, 103, 27, 189, 169, 205, 156, 79, 157, 57, 150, 83, 223, 49, 179, 222, 13, 224, 171, 91, 69, 205, 141, 217, 114, 139, 101, 223, 25, 198, 27, 130, 230, 176, 115, 142, 187, 183, 144, 187, 77, 215, 149, 158, 199, 103, 131, 206, 37, 134, 171, 120, 178, 141, 220, 208, 156, 171, 122, 213, 157, 229, 126, 45, 209, 19, 135, 93, 12, 69, 114, 135, 244, 255, 14, 175, 73, 154, 232, 44, 161, 26, 31, 10, 37, 246, 68, 106, 19, 188, 216, 250, 210, 227, 239, 143, 176, 98, 255, 212, 10, 25, 93, 84, 68, 28, 215, 237, 48, 105, 180, 157, 96, 21, 47, 170, 245, 76, 148, 155, 0, 193, 221, 135, 122, 202, 2, 225, 144, 221, 219, 139, 169, 9, 18, 54, 166, 247, 246, 30, 176, 190, 121, 190, 30, 77, 216, 187, 166, 171, 96, 50, 46, 222, 11, 244, 10, 1, 134, 220, 120, 236, 254, 6, 92, 197, 251, 79, 96, 65, 106, 236, 154, 62, 145, 247, 33, 171, 74, 155, 127, 135, 228, 185, 158, 203, 246, 225, 235, 13, 206, 0, 252, 229, 59, 171, 213, 231, 39, 106, 121, 71, 132, 96, 56, 26, 255, 118, 139, 63, 37, 138, 134, 46, 118, 225, 91, 131, 161, 19, 176, 11, 130, 92, 64, 115, 254, 196, 65, 140, 176, 95, 128, 200, 161, 147, 232, 250, 77, 92, 21, 18, 159, 37, 142, 87, 233, 237, 185, 250, 195, 187, 44, 38, 29, 33, 244, 1, 163, 204, 49, 186, 198, 36, 113, 92, 49, 161, 87, 154, 88, 79, 131, 37, 83, 204, 227, 230, 48, 45, 64, 219, 17, 112, 56, 162, 46, 102, 95, 231, 177, 122, 195, 1, 5, 195, 218, 53, 121, 154, 232, 215, 216, 221, 176, 90, 98, 187, 253, 194, 83, 180, 29, 149, 116, 78, 13, 94, 218, 63, 169, 14, 236, 220, 18, 146, 215, 241, 151, 180, 44, 112, 125, 207, 113, 139, 167, 90, 77, 65, 208, 153, 81, 194, 181, 182, 130, 123, 36, 112, 24, 170, 32, 42, 138, 7, 65, 77, 19, 254, 189, 50, 253, 8, 90, 60, 72, 212, 158, 193, 200, 238, 235, 134, 3, 96, 168, 101, 239, 1, 155, 116, 156, 232, 5, 212, 11, 200, 48, 163, 105, 148, 51, 213, 115, 97, 154, 161, 239, 89, 133, 114, 157, 223, 192, 126, 141, 223, 91, 225, 34, 112, 229, 53, 201, 17, 197, 104, 98, 3, 109, 168, 11, 16, 230, 233, 181, 71, 195, 106, 204, 172, 22, 19, 11, 79, 1, 13, 244, 123, 3, 136, 74, 140, 100, 237, 22, 44, 169, 79, 76, 53, 46, 65, 253, 118, 124, 203, 27, 132, 22, 157, 187, 244, 133, 183, 144, 170, 179, 137, 44, 116, 57, 234, 17, 202, 7, 9]
let iv1 = 39527454;
let iv2 = -1932492158;
let s1 = [1891353754, 1035793960, -1062579495, 971497754];
let s2 = 4313095025605680;
let roundcount = 20;
console.log(encryp(key, inp, iv1, iv2, s1, s2, roundcount)+'')
data = [254, 4, 200, 112, 114, 111, 98, 97, 98, 108, 121, 200, 50, 51, 49, 50, 55, 49, 50, 55, 197, 48, 51, 49, 51, 48, 203, 71, 111, 111, 103, 108, 101, 32, 73, 110, 99, 46, 144, 248, 64, 107, 144, 244, 39, 162, 193, 48, 248, 0, 231, 0, 0, 1, 137, 217, 160, 142, 125, 162, 193, 53, 231, 255, 255, 255, 255, 255, 255, 249, 176, 162, 193, 55, 248, 4, 224, 224, 163, 234, 28, 196, 87, 147, 230, 54, 157, 190, 125, 230, 64, 70, 134, 242, 162, 194, 49, 49, 248, 5, 240, 100, 97, 116, 97, 58, 105, 109, 97, 103, 101, 47, 112, 110, 103, 59, 98, 97, 115, 101, 54, 52, 44, 105, 86, 66, 79, 82, 119, 48, 75, 71, 103, 111, 65, 65, 65, 65, 78, 83, 85, 104, 69, 85, 103, 65, 65, 65, 83, 119, 65, 0, 230, 61, 218, 155, 56, 162, 194, 49, 50, 224, 162, 194, 49, 51, 224, 162, 194, 49, 52, 230, 72, 240, 246, 245, 162, 194, 49, 53, 248, 6, 224, 0, 230, 4, 165, 137, 3, 162, 194, 50, 49, 240, 83, 117, 110, 32, 65, 117, 103, 32, 48, 53, 32, 49, 57, 52, 53, 32, 49, 51, 58, 52, 54, 58, 48, 48, 32, 71, 77, 84, 45, 48, 57, 51, 48, 32, 40, 72, 97, 119, 97, 105, 105, 45, 65, 108, 101, 117, 116, 105, 97, 110, 32, 83, 116, 97, 110, 100, 97, 114, 100, 32, 84, 105, 109, 101, 41, 0, 162, 194, 50, 52, 248, 15, 244, 47, 224, 225, 224, 224, 224, 224, 224, 225, 224, 225, 225, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 224, 224, 225, 224, 225, 224, 225, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 224, 224, 5, 162, 194, 50, 53, 248, 16, 225, 225, 225, 225, 225, 201, 117, 110, 100, 101, 102, 105, 110, 101, 100, 162, 194, 50, 57, 180, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 162, 194, 51, 50, 248, 23, 225, 2, 162, 194, 51, 52, 225, 162, 194, 51, 57, 144, 162, 194, 52, 50, 248, 29, 230, 88, 135, 252, 72, 244, 43, 195, 97, 98, 115, 196, 97, 99, 111, 115, 197, 97, 99, 111, 115, 104, 196, 97, 115, 105, 110, 197, 97, 115, 105, 110, 104, 196, 97, 116, 97, 110, 197, 97, 116, 97, 110, 104, 197, 97, 116, 97, 110, 50, 196, 99, 101, 105, 108, 196, 99, 98, 114, 116, 197, 101, 120, 112, 109, 49, 197, 99, 108, 122, 51, 50, 195, 99, 111, 115, 196, 99, 111, 115, 104, 195, 101, 120, 112, 197, 102, 108, 111, 111, 114, 198, 102, 114, 111, 117, 110, 100, 197, 104, 121, 112, 111, 116, 196, 105, 109, 117, 108, 195, 108, 111, 103, 197, 108, 111, 103, 49, 112, 196, 108, 111, 103, 50, 197, 108, 111, 103, 49, 48, 195, 109, 97, 120, 195, 109, 105, 110, 195, 112, 111, 119, 198, 114, 97, 110, 100, 111, 109, 197, 114, 111, 117, 110, 100, 196, 115, 105, 103, 110, 195, 115, 105, 110, 196, 115, 105, 110, 104, 196, 115, 113, 114, 116, 195, 116, 97, 110, 196, 116, 97, 110, 104, 197, 116, 114, 117, 110, 99, 193, 69, 196, 76, 78, 49, 48, 195, 76, 78, 50, 198, 76, 79, 71, 49, 48, 69, 197, 76, 79, 71, 50, 69, 194, 80, 73, 199, 83, 81, 82, 84, 49, 95, 50, 197, 83, 81, 82, 84, 50, 162, 194, 52, 53, 168, 234, 55, 231, 55, 155, 230, 92, 133, 51, 231, 234, 55, 231, 55, 155, 230, 104, 206, 2, 149, 230, 54, 25, 138, 255, 230, 71, 111, 30, 200, 234, 62, 208, 217, 67, 230, 51, 197, 117, 5, 162, 194, 52, 55, 248, 33, 144, 248, 35, 144, 144, 162, 194, 52, 56, 248, 37, 217, 123, 34, 48, 34, 58, 123, 34, 105, 115, 84, 114, 117, 115, 116, 101, 100, 34, 58, 102, 97, 108, 115, 101, 125, 125, 225, 224, 224, 162, 194, 53, 49, 248, 39, 226, 226, 226, 0, 1, 0, 0, 0, 0, 162, 194, 53, 55, 248, 41, 3, 240, 65, 57, 55, 110, 102, 89, 45, 73, 65, 81, 65, 65, 113, 111, 87, 115, 56, 84, 111, 107, 67, 71, 100, 52, 103, 101, 57, 119, 105, 74, 87, 69, 116, 84, 121, 83, 69, 55, 67, 49, 112, 76, 83, 68, 106, 69, 101, 52, 116, 122, 65, 122, 119, 75, 71, 118, 107, 74, 50, 81, 65, 83, 90, 101, 98, 100, 75, 117, 99, 110, 48, 101, 119, 72, 57, 101, 67, 79, 102, 118, 111, 115, 74, 101, 67, 65, 61, 61, 0, 162, 194, 53, 57, 248, 48, 249, 53, 128, 249, 50, 15, 64, 249, 51, 0, 249, 47, 0, 249, 49, 63, 128, 106, 22, 224, 249, 52, 248, 162, 194, 54, 48, 248, 54, 248, 55, 1, 69, 17, 74, 0, 225, 69, 120, 74, 0, 0, 0, 225, 248, 57, 199, 77, 111, 122, 105, 108, 108, 97, 200, 78, 101, 116, 115, 99, 97, 112, 101, 240, 53, 46, 48, 32, 40, 87, 105, 110, 100, 111, 119, 115, 32, 78, 84, 32, 49, 48, 46, 48, 59, 32, 87, 105, 110, 54, 52, 59, 32, 120, 54, 52, 41, 32, 65, 112, 112, 108, 101, 87, 101, 98, 75, 105, 116, 47, 53, 51, 55, 46, 51, 54, 32, 40, 75, 72, 84, 77, 76, 44, 32, 108, 105, 107, 101, 32, 71, 101, 99, 107, 111, 41, 32, 67, 104, 114, 111, 109, 101, 47, 55, 56, 46, 48, 46, 51, 57, 48, 52, 46, 49, 48, 56, 32, 83, 97, 102, 97, 114, 105, 47, 53, 51, 55, 46, 51, 54, 0, 226, 226, 226, 24, 0, 226, 197, 87, 105, 110, 51, 50, 197, 71, 101, 99, 107, 111, 200, 50, 48, 48, 51, 48, 49, 48, 55, 240, 77, 111, 122, 105, 108, 108, 97, 47, 53, 46, 48, 32, 40, 87, 105, 110, 100, 111, 119, 115, 32, 78, 84, 32, 49, 48, 46, 48, 59, 32, 87, 105, 110, 54, 52, 59, 32, 120, 54, 52, 41, 32, 65, 112, 112, 108, 101, 87, 101, 98, 75, 105, 116, 47, 53, 51, 55, 46, 51, 54, 32, 40, 75, 72, 84, 77, 76, 44, 32, 108, 105, 107, 101, 32, 71, 101, 99, 107, 111, 41, 32, 67, 104, 114, 111, 109, 101, 47, 55, 56, 46, 48, 46, 51, 57, 48, 52, 46, 49, 48, 56, 32, 83, 97, 102, 97, 114, 105, 47, 53, 51, 55, 46, 51, 54, 0, 243, 3, 192, 224, 226, 248, 56, 69, 120, 69, 120, 24, 69, 160, 24, 74, 0, 225, 162, 194, 54, 49, 170, 237, 64, 139, 45, 124, 237, 145, 104, 115, 237, 64, 139, 178, 239, 157, 178, 45, 14, 237, 64, 140, 56, 92, 40, 245, 194, 143, 237, 64, 140, 189, 178, 45, 14, 86, 4, 237, 64, 141, 67, 45, 14, 86, 4, 25, 237, 64, 141, 200, 176, 32, 196, 155, 166, 237, 64, 142, 78, 55, 75, 198, 167, 240, 237, 64, 142, 211, 135, 43, 2, 12, 74, 237, 64, 143, 89, 24, 147, 116, 188, 106, 237, 64, 143, 222, 114, 176, 32, 196, 156, 162, 194, 57, 55, 248, 64, 85, 249, 64, 86, 192, 249, 64, 86, 192, 249, 64, 86, 192, 162, 194, 57, 57, 249, 64, 88, 0, 162, 195, 49, 48, 50, 248, 64, 90, 227, 240, 67, 97, 110, 110, 111, 116, 32, 114, 101, 97, 100, 32, 112, 114, 111, 112, 101, 114, 116, 121, 32, 39, 48, 39, 32, 111, 102, 32, 110, 117, 108, 108, 0, 201, 84, 121, 112, 101, 69, 114, 114, 111, 114, 227, 240, 84, 121, 112, 101, 69, 114, 114, 111, 114, 58, 32, 67, 97, 110, 110, 111, 116, 32, 114, 101, 97, 100, 32, 112, 114, 111, 112, 101, 114, 116, 121, 32, 39, 48, 39, 32, 111, 102, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 97, 116, 32, 85, 82, 76, 0, 227, 162, 195, 49, 48, 52, 248, 64, 91, 64, 111, 12, 12, 162, 195, 49, 48, 54, 164, 231, 0, 0, 1, 137, 217, 160, 142, 203, 0, 66, 198, 0, 162, 195, 49, 48, 57, 144, 162, 195, 49, 49, 48, 224, 162, 195, 49, 49, 49, 248, 64, 96, 192, 192, 197, 109, 97, 121, 98, 101, 243, 0, 243, 0, 192, 192, 243, 0, 243, 0, 192, 243, 0, 192, 243, 0, 192, 243, 0, 192, 192, 192, 192, 192, 243, 0, 243, 0, 243, 0, 192, 192, 162, 195, 49, 49, 50, 248, 64, 97, 144, 225, 225, 0, 162, 195, 49, 49, 51, 248, 64, 99, 234, 21, 249, 110, 212, 248, 64, 100, 225, 248, 64, 102, 198, 120, 105, 97, 110, 107, 97, 243, 3, 163, 194, 49, 49, 197, 49, 49, 48, 50, 52, 202, 51, 50, 55, 54, 55, 51, 50, 55, 54, 55, 16, 248, 64, 101, 8, 8, 24, 8, 32, 228, 64, 0, 68, 0, 228, 64, 0, 16, 228, 64, 0, 30, 16, 16, 80, 0, 8, 204, 87, 101, 98, 75, 105, 116, 32, 87, 101, 98, 71, 76, 240, 87, 101, 98, 71, 76, 32, 71, 76, 83, 76, 32, 69, 83, 32, 49, 46, 48, 32, 40, 79, 112, 101, 110, 71, 76, 32, 69, 83, 32, 71, 76, 83, 76, 32, 69, 83, 32, 49, 46, 48, 32, 67, 104, 114, 111, 109, 105, 117, 109, 41, 0, 0, 198, 87, 101, 98, 75, 105, 116, 240, 87, 101, 98, 71, 76, 32, 49, 46, 48, 32, 40, 79, 112, 101, 110, 71, 76, 32, 69, 83, 32, 50, 46, 48, 32, 67, 104, 114, 111, 109, 105, 117, 109, 41, 0, 172, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 2, 243, 2, 243, 2, 243, 2, 243, 2, 243, 2, 189, 214, 65, 78, 71, 76, 69, 95, 105, 110, 115, 116, 97, 110, 99, 101, 100, 95, 97, 114, 114, 97, 121, 115, 208, 69, 88, 84, 95, 98, 108, 101, 110, 100, 95, 109, 105, 110, 109, 97, 120, 219, 69, 88, 84, 95, 99, 111, 108, 111, 114, 95, 98, 117, 102, 102, 101, 114, 95, 104, 97, 108, 102, 95, 102, 108, 111, 97, 116, 216, 69, 88, 84, 95, 100, 105, 115, 106, 111, 105, 110, 116, 95, 116, 105, 109, 101, 114, 95, 113, 117, 101, 114, 121, 207, 69, 88, 84, 95, 102, 108, 111, 97, 116, 95, 98, 108, 101, 110, 100, 206, 69, 88, 84, 95, 102, 114, 97, 103, 95, 100, 101, 112, 116, 104, 214, 69, 88, 84, 95, 115, 104, 97, 100, 101, 114, 95, 116, 101, 120, 116, 117, 114, 101, 95, 108, 111, 100, 222, 69, 88, 84, 95, 116, 101, 120, 116, 117, 114, 101, 95, 102, 105, 108, 116, 101, 114, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 240, 87, 69, 66, 75, 73, 84, 95, 69, 88, 84, 95, 116, 101, 120, 116, 117, 114, 101, 95, 102, 105, 108, 116, 101, 114, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 0, 200, 69, 88, 84, 95, 115, 82, 71, 66, 219, 75, 72, 82, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 115, 104, 97, 100, 101, 114, 95, 99, 111, 109, 112, 105, 108, 101, 214, 79, 69, 83, 95, 101, 108, 101, 109, 101, 110, 116, 95, 105, 110, 100, 101, 120, 95, 117, 105, 110, 116, 216, 79, 69, 83, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 115, 209, 79, 69, 83, 95, 116, 101, 120, 116, 117, 114, 101, 95, 102, 108, 111, 97, 116, 216, 79, 69, 83, 95, 116, 101, 120, 116, 117, 114, 101, 95, 102, 108, 111, 97, 116, 95, 108, 105, 110, 101, 97, 114, 214, 79, 69, 83, 95, 116, 101, 120, 116, 117, 114, 101, 95, 104, 97, 108, 102, 95, 102, 108, 111, 97, 116, 221, 79, 69, 83, 95, 116, 101, 120, 116, 117, 114, 101, 95, 104, 97, 108, 102, 95, 102, 108, 111, 97, 116, 95, 108, 105, 110, 101, 97, 114, 215, 79, 69, 83, 95, 118, 101, 114, 116, 101, 120, 95, 97, 114, 114, 97, 121, 95, 111, 98, 106, 101, 99, 116, 216, 87, 69, 66, 71, 76, 95, 99, 111, 108, 111, 114, 95, 98, 117, 102, 102, 101, 114, 95, 102, 108, 111, 97, 116, 221, 87, 69, 66, 71, 76, 95, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, 116, 101, 120, 116, 117, 114, 101, 95, 115, 51, 116, 99, 240, 87, 69, 66, 75, 73, 84, 95, 87, 69, 66, 71, 76, 95, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, 116, 101, 120, 116, 117, 114, 101, 95, 115, 51, 116, 99, 0, 240, 87, 69, 66, 71, 76, 95, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, 116, 101, 120, 116, 117, 114, 101, 95, 115, 51, 116, 99, 95, 115, 114, 103, 98, 0, 217, 87, 69, 66, 71, 76, 95, 100, 101, 98, 117, 103, 95, 114, 101, 110, 100, 101, 114, 101, 114, 95, 105, 110, 102, 111, 211, 87, 69, 66, 71, 76, 95, 100, 101, 98, 117, 103, 95, 115, 104, 97, 100, 101, 114, 115, 211, 87, 69, 66, 71, 76, 95, 100, 101, 112, 116, 104, 95, 116, 101, 120, 116, 117, 114, 101, 218, 87, 69, 66, 75, 73, 84, 95, 87, 69, 66, 71, 76, 95, 100, 101, 112, 116, 104, 95, 116, 101, 120, 116, 117, 114, 101, 210, 87, 69, 66, 71, 76, 95, 100, 114, 97, 119, 95, 98, 117, 102, 102, 101, 114, 115, 210, 87, 69, 66, 71, 76, 95, 108, 111, 115, 101, 95, 99, 111, 110, 116, 101, 120, 116, 217, 87, 69, 66, 75, 73, 84, 95, 87, 69, 66, 71, 76, 95, 108, 111, 115, 101, 95, 99, 111, 110, 116, 101, 120, 116, 162, 195, 49, 49, 54, 255, 0, 227, 162, 212, 99, 117, 115, 116, 111, 109, 95, 67, 104, 114, 111, 109, 101, 67, 111, 110, 115, 111, 108, 101, 224, 162, 205, 99, 117, 115, 116, 111, 109, 95, 119, 101, 98, 82, 84, 67, 144, 162, 193, 109, 200, 100, 100, 52, 54, 101, 99, 98, 100, 162, 193, 114, 195, 49, 57, 57]
roundcount = parseInt(data.length/64) + 1
console.log(data.length)
console.log(encryp(key, data, iv1, iv2, s1, s2, roundcount))
// 22,28,65,7,
// 126,253,124,215,
// 211,173,38,185,
// 57,199,171,221,
// 191,194,206,119,51,244,118,0,9,22,28,65,7,61,156,95,228,82
// 22, 28, 65, 7, 126 ] set
// [ 22, 28, 65, 7, 126, 253, 124 ] set
function int2List(p) {
z = []
z.push(p & 255)
z.push((p >> 8) & 255)
z.push((p >> 16) & 255)
z.push((p >> 24) & 255)
}
\ No newline at end of file
......@@ -6,8 +6,8 @@ import re
import struct
import time
from shape_encrypt import encrypt
from superpack import *
from shape_encrypt import encrypt, unsinged_right_shift
# from superpack import *
def simplehash(x):
......@@ -88,8 +88,8 @@ BUNDLE_SEED_KEY = "c"
BUNDLE_ID_KEY = "d"
FIRMWARE_KEY = "z"
PAYLOAD_KEY = "a"
GRAPHICSDRIVER = open('graphicsdrivers.txt', 'r').read().strip().split("\n")
GRAPHICSDRIVER = [p.strip() for p in GRAPHICSDRIVER]
# GRAPHICSDRIVER = open('graphicsdrivers.txt', 'r').read().strip().split("\n")
# GRAPHICSDRIVER = [p.strip() for p in GRAPHICSDRIVER]
PIXELDATAS = [(1920, 1040, 937), (2560, 1400, 1297)]
......@@ -194,10 +194,10 @@ class BotDetector:
"WEBKIT_WEBGL_lose_context"], "contextProperties": -368668372}
def processrawscript(self, x):
# funcstr=re.search("function a\(b\)({.*?)\n",x).group(1)
# funcstr=funcstr[:funcstr.rfind("}")]
# self.scriptdata={"length":len(funcstr),"whitespace":len(re.findall('\s',funcstr)),"punctuators":len(re.findall('[.{([,;=/]',funcstr))}
self.scriptdata = {"length": 111, "whitespace": 12, "punctuators": 12}
funcstr=re.search("function \w\(\w\)({.*?)\n",x).group(1)
funcstr=funcstr[:funcstr.rfind("}")]
self.scriptdata={"length":len(funcstr),"whitespace":len(re.findall('\s',funcstr)),"punctuators":len(re.findall('[.{([,;=/]',funcstr))}
# self.scriptdata = {"length": 111, "whitespace": 12, "punctuators": 12}
m = re.search(" H=(.*?\]);", x).group(1)
mm = eval(m)
m = mm.index("o_0")
......@@ -713,7 +713,51 @@ class BotDetector:
x[self.headernameprefix + BUNDLE_ID_KEY] = "o_0"
x[self.headernameprefix + BUNDLE_SEED_KEY] = self.bundleseed
m = self.generatedata()
x[self.headernameprefix + PAYLOAD_KEY] = m
x[self.headernameprefix + 'a'] = m
x[self.headernameprefix + INTEGRITY_KEY] = base36(simplehash(self.uuidtoken + m))
x[self.headernameprefix + FIRMWARE_KEY] = "p"
return x
import ctypes
# def decode(self, data):
# data = base64decode(data, self.alphabet)
# iv1 = struct.unpack(">I", data[:4])[0]
# iv2 = struct.unpack(">I", data[4:8])[0]
# data = encrypt(self.encryptionkey, [ord(data[i]) for i in range(8, len(data))], iv1, iv2, self.encryptionseed1,
# self.encryptionseed2, self.encryptionroundcount)
# return data
def decode(data):
x = open('../v_env.js','r').read()
# x = 'document.createEvent("CustomEvent"),["AxvBzMmJAQAAaAQ7zgSP4nlKcZSttXsGb9uYkkLY7uLh100Yc-RKVcn629ZUAWe0HDyuchRAwH9eCOfvosJeCA==","Sb2R0TaUxeVq=uBYcvlFs_zMI1p4NdJk65nLhQmKwryHoCOXDf-iA3G8W9PEj7tgZ",[],[1039986844,1225706997,1451603167,292604025,196753778,1507064707,216593626,435818908],'
l = re.search("initCustomEvent\(.*?\[\"(.*?)\",\"(.*?)\".*?,.*?,(.*?\])", x)
uuidtoken, alphabet = l.group(1), l.group(2)
encryptionkey = eval(l.group(3))
encryptionkey = [int(r) for r in encryptionkey]
print(alphabet, encryptionkey)
print('uuid', uuidtoken)
data = base64decode(data, alphabet)
print(data)
iv1 = struct.unpack(">I", data[:4])[0]
iv2 = struct.unpack(">I", data[4:8])[0]
# encryptionkey = [ctypes.c_int32(x & 4294967295).value for x in encryptionkey]
print('key',encryptionkey)
iv1 = ctypes.c_int32(iv1 & 4294967295).value
iv2 = ctypes.c_int32(iv2 & 4294967295).value
print('iv1',iv1)
print('iv2',iv2)
print([data[i] for i in range(8,len(data))])
encryptionseed2 = 4313095025605680
encryptionseed1 = [1891353754, 1035793960,-1062579495, 971497754,]
print('s1', encryptionseed1)
print('s2', encryptionseed2)
encryptionroundcount = 19
data = encrypt(encryptionkey, [data[i] for i in range(8, len(data))], iv1, iv2, encryptionseed1,
encryptionseed2, encryptionroundcount)
print(data)
print(bytearray(data))
if __name__ == '__main__':
data = 'J70P6FxkRF2WHEGQ=qLgC08Za4nRDr_9gQDiJK84gMh7Te-_Pbwlw03wAuHJbumgkX=4GbRx=NHZkJ-h1boAWFXcLojofDRAH-574XaLnmin7zT29KEXC59dqZQoRYP_=LwokjdTToCd2zN0IZkr-ZWXDlnC=3QIsbzVQIiOCZJHRKkz-vdwS1K9XHFQIa=5SQea-BSuXKzc1D78qIN=p-LJMAQlN8kdK4__2zc7jizzXSdqGXgOoKNHzOcR=4Rw6=eo3oCv89Q7XpklfWJpLxzIRjCNjEL6NWvnhfWk85x7Ab3dW7NwuruFTb4oT1mb7WzwQ8oH_GGvK8p4onDNgE12GIj7O_4BCKVW13QhBc5V7eFDEHaWyWBTSQ83ZHa-XwaEaB6XAXqc6PVrRQi=tKfz1rKGg9j9mKE4H7QOpsFqs45cEo1GRlti9ofCSLrYw1iZsNbY9J4ALtMVGc6ca5YrGi5_ZpYaYuDsF7QjGj0Z=7bJaZmv0flgA=eubc-6gB0vZWb=olRHWz1yDPLE-JjQnEf=B7kcGmCdOaaZJxhXklnV10BJ2=vVS8_RQK0rTJRBo5fqCxDQ=o97w2-_Zh5V1YATI_vuiGO1sq3R01Qv9Od_02_5SvdQ7xdvOWGEPvNPOOh4F=ri8m8EIbppHXoydc0Kfb-pp3hbHetc1JHpt8gx=hbJuZ7usvAjsruYag=DKtCHBkurRvhxyQjPTzPKdDseavj=vBJj3a=j-9ELv5LIQBj1xO_GY_wMLaWAHfs2j8BRZfXkHcfAAI=_50B1KhCOYSYXL6DFqMa18r78e9LhlDzt9xHdTb7e4D3GAjc8ZhKn=tG-ZSLACMGQSXiwm6Gl3-z5kvYv45tz95h9-qPEbLEKfwbgWm3oybKt4Lo5P3YnnPgQWste3sK4iF7V2pyHnvlpVPAV0n_go56w6Of3f6DtxmYoR5eoHXQvqJ3HFaVXSWRTL4QiLK1rV84-NpAJKWdR4-RdC18bI35wqWsLx-KvwfuXCyDK0ytMt4I3easMsE4c-bD-KirQYB8xABrgPcIM5YXjKsjoxHXqZgHGAbxkw4IT5-g7zHgeStbboSdGihfhoZyOurR0FeFzQHEseqFf=MATNrv=AW8Hhyk4qd5Ce8xEWf8LIO5R9m1ZyCGCupo8g_bTGRciPMg3HTPOSAluyh_j0cYY=iYMscruZsJGcItcyJF8iIKtWvtqEnEWfs88lrGlvL6g2lI4ug16YcujGh3iTpgVJvx7VT=dYGbZjCjS_oRlhglcvGX4iHYstdroFeVpQtOak6v1KSqn091JG4qfTvLME8CmwGXVd1wIrzBorGpu6m6NJlvnn3BqO69anl9Eu7ivRGdfxVvunQ5JsK9pV42r-7hw0EBoJkEosAdYurAEsMspXu4WhaOfI8sdbStMEIFhZkW0g84m5hqEIQKpzayKHTblfC6kud6QI3lQjGepq4FR4FF6kCNfhBNGhkilvSACw062WrrqJsQF-jD8ugmaTJECQDRpFsuCnydx_-ZiW5u9aLgzp6TMg5=i2wo7MaPeKXiHJssFQKouT3d6psBnB8_fQND8ozeWJti4AqfI9HGLfNp5cP6ybwxcqtkXw3=Ni3jkZBVOc6kYTi648pP'
decode(data)
\ No newline at end of file
def plus(x, i, j):
x[i] = x[i] + x[j]
x[i] = ctypes.c_int32(x[i] & 4294967295).value
def rrot(x, i, j, k):
print('rrot', x[i], '^', x[j], '==>', ctypes.c_int32(x[i] ^ x[j]).value)
s = ctypes.c_int32(x[i] ^ x[j]).value
s = ctypes.c_int32(s & 4294967295).value
# x[i] = (((ctypes.c_int32(s << k).value + 1) & 4294967295) | (s >> (32 - k))) & 4294967295
x[i] = ctypes.c_int32(s << k).value | ctypes.c_int32(s >> (32 -k)).value
import ctypes
def unsinged_right_shift(x, y):
x, y = ctypes.c_uint32(x).value, y % 32
return ctypes.c_uint32(x >> y).value
def encrypt(key, inp, iv1, iv2, s1, s2, roundcount):
k = [[0, 4, 8, 12], [1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [0, 5, 10, 15], [1, 6, 11, 12], [2, 7, 8, 13],
[3, 4, 9, 14]]
l = [16, 12, 8, 7]
y = s1 + key + [0, 0, iv1, iv2]
v1 = s2
out = []
inpl = len(inp)
while len(out) < inpl:
y[12] = v1 & 4294967295
y[13] = int(v1 / 4294967296)
x = y[:]
for i in range(0, roundcount):
for p in k:
for i in range(0, 4):
plus(x, p[2 * i % 4], p[2 * i % 4 + 1])
rrot(x, p[(2 * i + 3) % 4], p[2 * i % 4], l[i % 4])
for i in range(0, 16):
x[i] = x[i] + y[i]
z = []
for p in x:
p = p & 4294967295
z.append(p & 255)
z.append((p >> 8) & 255)
z.append((p >> 16) & 255)
z.append((p >> 24) & 255)
while len(out) < inpl and len(z) > 0:
out.append(inp[len(out)] ^ z.pop(0))
v1 = (v1 + 1) % 9007199254740992
return out
import os
import random
import struct
import time
from collections import OrderedDict
class TypeTags:
UINT6_BASE = 0
UINT14_BASE = 64
NINT4_BASE = 128
BARRAY4_BASE = 144
ARRAY5_BASE = 160
STR5_BASE = 192
FALSE = 224
TRUE = 225
NULL = 226
UNDEFINED = 227
UINT16 = 228
UINT24 = 229
UINT32 = 230
UINT64 = 231
NINT8 = 232
NINT16 = 233
NINT32 = 234
NINT64 = 235
FLOAT32 = 236
DOUBLE64 = 237
TIMESTAMP = 238
BINARY_ = 239
CSTRING = 240
STR8 = 241
STR_ = 242
STRREF = 243
ARRAY8 = 244
ARRAY_ = 245
BARRAY8 = 246
BARRAY_ = 247
MAP_ = 248
BMAP_ = 249
MAPL_ = 250
BMAPL_ = 251
STRLUT = 254
EXTENSION = 255
def bytefrombools(x):
y = []
for i in range(0, len(x), 8):
a, j = 0, 0
while j < 8 and j < (len(x) - i):
a |= int(x[i + j]) << (7 - j)
j += 1
y.append(a)
return y
def int32tobytes(x):
return [x >> 24, x >> 16 & 0xFF, x >> 8 & 0xFF, x & 0xFF]
class Encoder:
def __init__(self):
self.keysets = []
self.keysetsindex = 0
self.stringhist = {}
self.output = []
def createstringhist(self, obj):
if type(obj) == str:
obj = obj.encode('utf-8')
self.stringhist[obj] = self.stringhist.get(obj, 0) + 1
return
if type(obj) == list:
for p in obj:
self.createstringhist(p)
elif type(obj) == dict:
for p in obj:
self.createstringhist(obj[p])
def encode(self, obj, keysetstoomit=None):
if keysetstoomit == None: keysetstoomit = []
self.keysets = [tuple(p) for p in keysetstoomit]
self.keysetsindex = len(self.keysets)
self.output = []
self.stringhist = OrderedDict()
self.createstringhist(obj)
self.stringhist = [(p, ((len(p) + 1) * self.stringhist[p]) - (len(p) + 2 + self.stringhist[p])) for p in
self.stringhist]
self.stringhist = [(-q, p) for (p, q) in self.stringhist if q > 0]
self.stringhist = [p for (q, p) in sorted(self.stringhist)]
q = self.stringhist
if len(self.stringhist) > 255:
self.stringhist = self.stringhist[:255]
self.write(obj)
x = self.output
self.output = []
self.stringhist = []
self.output.append(TypeTags.STRLUT)
self.output.append(len(q))
for p in q:
self.writeStr(p)
self.writeArray(self.keysets[self.keysetsindex:])
return self.output + x
def write(self, x):
if type(x) == type(None):
self.output.append(TypeTags.NULL)
elif x == NULL:
self.output.append(TypeTags.NULL)
elif x == UNDEFINED:
self.output.append(TypeTags.UNDEFINED)
elif x == DEFAULT:
self.output += [TypeTags.EXTENSION, 0, TypeTags.UNDEFINED]
elif x == INFINITY:
self.output += [TypeTags.FLOAT32, 0x7F, 0x80, 0x00, 0x00]
elif x == NEGINFINITY:
self.output += [TypeTags.FLOAT32, 0xFF, 0x80, 0x00, 0x00]
elif x == NAN:
self.output += [TypeTags.FLOAT32, 0x7F, 0xC0, 0x00, 0x00]
else:
ENCODERS[type(x)](self, x)
def writeBoolean(self, x):
if x:
self.output.append(TypeTags.TRUE)
else:
self.output.append(TypeTags.FALSE)
def writeInt(self, x):
if abs(x) > 0xFFFFFFFFFFFFFFFF:
return self.writeFloat(x)
if x >= 0:
if x < 64:
self.output.append(x)
elif x <= 0x3FFF:
self.output += [TypeTags.UINT14_BASE | x >> 8, x & 0xFF]
elif x <= 0xFFFF:
self.output += [TypeTags.UINT16, x >> 8, x & 0xFF]
elif x <= 0xFFFFFF:
self.output += [TypeTags.UINT24, x >> 16, x >> 8 & 0xFF, x & 0xFF]
elif x <= 0xFFFFFFFF:
self.output.append(TypeTags.UINT32)
self.output += int32tobytes(x)
else:
self.output.append(TypeTags.UINT64)
self.output += int32tobytes(x >> 32 & 0xFFFFFFFF)
self.output += int32tobytes(x & 0xFFFFFFFF)
else:
x = -x
if x <= 15:
self.output.push(TypeTags.NINT4_BASE | x)
elif x <= 0xFF:
self.output += [TypeTags.NINT8, x]
elif x <= 0xFFFF:
self.output += [TypeTags.NINT16, x >> 8, x & 0xFF]
elif x <= 0xFFFFFFFF:
self.output.append(TypeTags.NINT32)
self.output += int32tobytes(x)
else:
self.output.append(TypeTags.NINT64)
self.output += int32tobytes(x >> 32 & 0xFFFFFFFF)
self.output += int32tobytes(x & 0xFFFFFFFF)
def writeFloat(self, x):
m = struct.pack("f", x)
if x == struct.unpack("f", m)[0]:
self.output.append(TypeTags.FLOAT32)
else:
self.output.append(TypeTags.DOUBLE64)
m = struct.pack("d", x)
self.output += [m[i] for i in range(len(m) - 1, -1, -1)]
def writeStr(self, x):
if isinstance(x, str):
x = x.encode('utf-8')
if x in self.stringhist:
self.output += [TypeTags.STRREF, self.stringhist.index(x)]
return
z = False
xe = []
for p in x:
if p == 0:
z = True
xe.append(p)
x = xe
y = len(x)
if y < 32:
self.output.append(TypeTags.STR5_BASE | y)
self.output += x
else:
if not z:
self.output.append(TypeTags.CSTRING)
self.output += x
self.output.append(0)
else:
if y <= 255:
self.output += [TypeTags.STR8, y]
else:
self.output.append(TypeTags.STR_)
self.writeInt(y)
self.output += x
def writeArray(self, x):
isboolarray = True
for p in x:
if type(x) != bool:
isboolarray = False
break
if isboolarray:
if len(x) < 16:
self.output.append(TypeTags.BARRAY4_BASE | len(x))
elif len(x) < 256:
self.output.append(TypeTags.BARRAY8)
self.output.append(len(x))
else:
self.output.append(TypeTags.BARRAY_)
self.writeInt(len(x))
self.output += bytefrombools(x)
else:
if len(x) < 32:
self.output.append(TypeTags.ARRAY5_BASE | len(x))
elif len(x) <= 255:
self.output.append(TypeTags.ARRAY8)
self.output.append(len(x))
else:
self.output.append(TypeTags.ARRAY_)
self.writeInt(len(x))
for p in x:
self.write(p)
def writeDict(self, x):
y = tuple(sorted(x.keys()))
try:
k = self.keysets.index(y)
except:
self.keysets.append(y)
k = len(self.keysets) - 1
isbool = True
for p in y:
if type(x[p]) != bool:
isbool = False
break
if isbool:
self.output.append(TypeTags.BMAP_)
self.writeInt(k)
self.output += bytefrombools([x[p] for p in y])
else:
self.output.append(TypeTags.MAP_)
self.writeInt(k)
for p in y:
self.write(x[p])
ENCODERS = {
list: Encoder.writeArray,
dict: Encoder.writeDict,
str: Encoder.writeStr,
# unicode:Encoder.writeStr,
bool: Encoder.writeBoolean,
float: Encoder.writeFloat,
# long:Encoder.writeInt,
int: Encoder.writeInt,
tuple: Encoder.writeArray
}
class NULL: pass
class UNDEFINED: pass
class NAN: pass
class INFINITY: pass
class NEGINFINITY: pass
# not using extensions unnecessarily for this
class DEFAULT: pass
__all__ = ['NULL', 'UNDEFINED', 'NAN', 'INFINITY', 'NEGINFINITY', 'DEFAULT', 'Encoder']
def mhash(x, z):
z = '"' + z + '"'
x = x & 4294967295
for p in z:
x = x ^ ord(p)
x = x + ((x << 1) + (x << 4) + (x << 7) + (x << 8) + (x << 24))
x = x & 4294967295
return "{:08x}".format(x)
def simplehash(x):
if type(x) != list:
xx = []
i = -2
for i in range(0, len(x) - 1, 2):
xx.append(ord(x[i]) << 16 | ord(x[i + 1]))
if i < (len(x) - 2):
xx.append(ord(x[-1]) << 16)
x = xx
y = 0
for p in x:
y = ((y << 5) - y + p) & 4294967295
if y >> 31 == 1:
return -(4294967296 - int(y))
else:
return int(y)
STORAGE_OK = 3
UUID_TOKEN_KEY = "f"
INTEGRITY_KEY = "b"
BUNDLE_SEED_KEY = "c"
BUNDLE_ID_KEY = "d"
FIRMWARE_KEY = "z"
PAYLOAD_KEY = "a"
# GRAPHICSDRIVER=open('graphicsdrivers.txt','r').read().strip().split("\n")
# GRAPHICSDRIVER=[p.strip() for p in GRAPHICSDRIVER]
PIXELDATAS = [(1920, 1040, 937), (2560, 1400, 1297)]
consoleproperties = 'assert\x00clear\x00context\x00count\x00countReset\x00debug\x00dir\x00dirxml\x00error\x00group\x00groupCollapsed\x00groupEnd\x00info\x00log\x00memory\x00profile\x00profileEnd\x00table\x00time\x00timeEnd\x00timeLog\x00timeStamp\x00trace\x00warn'
def test():
# x = json.loads(open("superpacktest", 'rb').read())
uuidtoken = 'A97nfY-IAQAAqoWs8TokCGd4ge9wiJWEtTySE7C1pLSDjEe4tzAzwKGvkJ2QASZebdKucn0ewH9eCOfvosJeCA=='
inittime = int(time.time() * 1000)
timezonedata = random.choice(["Sun Aug 05 1945 19:16:00 GMT-0400 (Eastern Daylight Time)",
"Sun Aug 05 1945 13:46:00 GMT-0930 (Hawaii-Aleutian Standard Time)",
"Sun Aug 05 1945 14:16:00 GMT-0900 (Alaska Daylight Time)",
"Sun Aug 05 1945 16:16:00 GMT-0700 (Pacific Daylight Time)",
"Sun Aug 05 1945 18:16:00 GMT-0500 (Central Daylight Time)",
"Sun Aug 05 1945 20:16:00 GMT-0300 (Atlantic Daylight Time)",
"Mon Aug 06 1945 02:16:00 GMT+0300 (Central European Summer Time)",
"Mon Aug 06 1945 03:16:00 GMT+0400 (Gulf Standard Time)",
"Mon Aug 06 1945 05:46:00 GMT+0630 (India Standard Time)",
"Mon Aug 06 1945 06:16:00 GMT+0700 (Indochina Time)",
"Mon Aug 06 1945 08:16:00 GMT+0900 (Singapore Standard Time)",
"Mon Aug 06 1945 08:16:00 GMT+0900 (Japan Standard Time)"])
fonts = [False, True, False, False, False, False, False, True, False, True, True, False, False, False, False, False,
False, False, False, False, False, False, False, False, False, False, True, False, False, True, False,
True, False, True, False, False, False, False, False, False, False, False, False, True, True, False, False]
timestamps = [inittime + random.randint(40, 80), 0, random.randint(500, 800), random.randint(1000, 1500)]
plugins = [-482629523, 916307581, 1078363890]
timestamps[-1] = int(time.time() * 1000) - inittime
signals = []
signals.append(["0", {"timestamp": inittime}])
signals.append(["5", 18446744073709550000]) # parseInt('0xFFFFFFFFFFFFFBFF',16)
signals.append(["7", {"hasDefaultBrowserHelper": False, "hasWidevinePlugin": False,
"plugins": plugins}]) # plugin data for chrome
signals.append(["11", {"dataFragment": 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA',
"hashcode": 1037736760}]) # canvas fingerprint, text 'Hel$&?6%){mZ+#@'
signals.append(["12", False]) # chrome.webstore
signals.append(["13", False]) # checking window.Image
signals.append(["14", simplehash(consoleproperties)]) # checking properties of the object window.console
signals.append(["15", {"hasToSource": False, "sourceHash": 0, "stringHash": simplehash(
"function createElement() { [native code] }")}]) # hash of document.createElement.toString()
signals.append(["21", timezonedata]) # new Date(-770172240000).toString()
signals.append(["24", {"fonts": fonts, "version": 5}])
signals.append(["25", {"callable": True, "documentElement": True, "exists": True, "falsy": True, "nullish": True,
"type": "undefined"}]) # properties of document.documentElement
signals.append(["29",
[True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True,
True, True, True, True]])
signals.append(["32", {"emptyReferrer": True, "historyLength": 2}])
signals.append(["34", True]) # typeof indexedDB.open == "function"
keyevents = []
signals.append(["39", keyevents])
mathproperties = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1',
'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2',
'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan',
'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2']
signals.append(
["42", {"hash": simplehash("\x00".join(mathproperties)), "mathProperties": mathproperties}])
mediadeviceids = ["communications", os.urandom(32).hex(), "communications", os.urandom(32).hex(),
os.urandom(32).hex(), os.urandom(32).hex(), os.urandom(32).hex(), os.urandom(32).hex()]
signals.append(["45", [simplehash(p) for p in mediadeviceids]])
mousemoveevents = {"recent": [], "throttled": []}
mmoves = mousemoveevents.copy()
mousebuttonevents = []
mmoves["throttled"] = [p for p in mmoves["throttled"] if p["timestamp"] < mmoves["recent"][0]["timestamp"]]
signals.append(["47", {"mouseButtonEvents": mousebuttonevents, "mouseMoveEvents": mmoves}])
signals.append(["48", {"argumentsValue": '{"0":{"isTrusted":false}}', "hasArguments": True, "hasGlobal": False,
"hasProcess": False}])
signals.append(["51",
{"avgAlpha": None, "avgBeta": None, "avgGamma": None, "avgInterval": 0, "numOrientationEvents": 1,
"stdDevAlpha": 0, "stdDevBeta": 0, "stdDevGamma": 0, "stdDevInterval": 0}])
signals.append(["57", {"statuscode": STORAGE_OK, "value": uuidtoken}])
signals.append(["59", {
"global": {"ActiveXObject": False, "ApplePaySession": False, "File": True, "MutationObserver": True,
"Notification": True, "SharedWorker": True, "TouchEvent": True, "XDomainRequest": False,
"_phantom": False, "attachEvent": False, "callPhantom": False, "createPopup": False,
"detachEvent": False, "event": True, "external": True, "fireEvent": False, "frameElement": True,
"globalStorage": False, "localStorage": True, "mozRTCPeerConnection": False,
"mozRequestAnimationFrame": False, "phantom": False, "postMessage": True, "PushManager": True,
"registerProtocolHandler": False, "requestAnimationFrame": True, "sessionStorage": True,
"sidebar": False, "webkitRequestAnimationFrame": True, "webkitResolveLocalFileSystemURL": True,
"webkitRTCPeerConnection": True, "BluetoothUUID": True, "netscape": False,
"__fxdriver_unwrapped": False, "_Selenium_IDE_Recorder": False},
"document": {"_Selenium_IDE_Recorder": False, "all": True, "characterSet": True, "charset": True,
"compatMode": True, "documentMode": False, "images": True, "layers": False,
"$cdc_asdjflasutopfhvcZLmcfl_": False, "__fxdriver_unwrapped": False,
"__webdriver_script_fn": False},
"documentBody": {"contextMenu": False, "innerText": False, "mozRequestFullScreen": False,
"requestFullScreen": False, "webkitRequestFullScreen": False},
"navigator": {"vibrate": True, "webdriver": False, "credentials": True, "storage": True,
"requestMediaKeySystemAccess": True, "bluetooth": True}, "crypto": {"subtle": True},
"external": {"Sequentum": False}}])
pixeldata = (2560, 1400, 1297)
browserdata = {"global": {"innerHeight": pixeldata[2], "innerWidth": pixeldata[0], "outerHeight": pixeldata[1],
"outerWidth": pixeldata[0], "screenX": 0, "screenY": 0, "isSecureContext": True,
"devicePixelRatio": 1},
"screen": {"height": (pixeldata[1] + 40), "width": pixeldata[0], "availHeight": pixeldata[1],
"availWidth": pixeldata[1], "pixelDepth": 24, "colorDepth": 24},
"navigator": {"appCodeName": "Mozilla", "appName": "Netscape",
"appVersion": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
"buildID": None, "cpuClass": None, "hardwareConcurrency": random.choice([12, 24]),
"maxTouchPoints": 0, "platform": "Win32", "product": "Gecko", "productSub": "20030107",
"oscpu": None,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
"vendor": "Google Inc.", "vendorSub": "", "doNotTrack": None, "webdriver": False},
"operaVersion": None, "toolbar": True, "locationbar": True}
animationframetimes = []
k = random.randint(820000, 900000)
for i in range(0, 10):
animationframetimes.append(round(float(k) / 1000, 3))
k += random.randint(16660, 16700)
signals.append(["60", browserdata])
signals.append(["61", animationframetimes]) # 10 consecutive requestAnimationFrame
signals.append(["97", {"afterReady": {"InstallTrigger": True, "controllers": True},
"immediately": {"InstallTrigger": True, "controllers": True},
"lastChance": {"InstallTrigger": True, "controllers": True}}])
signals.append(["99", {"bodyAttribute": False, "scriptPresent": False}])
signals.append(["102",
{"description": UNDEFINED, "message": "Cannot read property '0' of null", "name": "TypeError",
"num": UNDEFINED, "stack": "TypeError: Cannot read property '0' of null\n at URL",
"stacktrace": UNDEFINED}])
scriptdata = {"length": 111, "whitespace": 12, "punctuators": 12}
signals.append(["104", scriptdata])
signals.append(["106", timestamps])
signals.append(["109", []])
signals.append(["110", False])
signals.append(["111", {"mpeg": "probably", "x-mpeg": "", "x-mpegurl": "", "mp4": "maybe",
"mp4; codecs=mp4a.40.2": "probably", "ogg; codecs=opus": "probably",
"ogg; codecs=speex": "", "webm; codecs=vorbis": "probably", "wav; codecs=\"0\"": "",
"wav; codecs=\"1\"": "probably", "wav; codecs=\"2\"": "", "wave": "", "wave; codecs=0": "",
"wave; codecs=1": "", "wave; codecs=2": "", "3gpp; codecs=\"mp4v.20.8, samr\"": "",
"webm; codecs=\"vorbis,vp9\"": "probably", "mp4; codecs=\"avc1.42c00d\"": "probably",
"webm; codecs=\"vp8, vorbis\"": "probably", "ogg; codecs=theora": "probably",
"ogg; codecs=\"theora, speex\"": "", "mp4; codecs=\"avc1.64001E, mp4a.40.2\"": "probably",
"mp4; codecs=\"mp4v.20.8, mp4a.40.2\"": "", "mp4; codecs=bogus": "",
"mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"": ""}])
visibilityevents = []
signals.append(["112", {"events": visibilityevents, "finalState": True, "initialState": True,
"visibilityEventCount": len(visibilityevents)}])
devicedata = {
"parameters": {"antialias": True, "maxAnisotropy": 16, "dimensions": ["11", "11024", "3276732767"],
"params": {"alphaBits": 8, "blueBits": 8, "greenBits": 8, "redBits": 8, "depthBits": 24,
"maxCombinedTextureImageUnits": 32, "maxCubeMapTextureSize": 16384,
"maxFragmentUniformVectors": 1024, "maxRenderbufferSize": 16384,
"maxTextureImageUnits": 16, "maxTextureSize": 16384, "maxVaryingVectors": 30,
"maxVertexAttribs": 16, "maxVertexTextureImageUnits": 16,
"maxVertexUniformVectors": 4096, "renderer": "WebKit WebGL",
"shadingLanguageVersion": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)",
"stencilBits": 0, "vendor": "WebKit",
"version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)"},
"debugInfo": {"vendor": "Google Inc.", "renderer": "xianka"}},
"shaderPrecisions": ["23127127", "23127127", "23127127", "23127127", "23127127", "23127127", "03130", "03130",
"03130", "03130", "03130", "03130"],
"supportedExtensions": ["ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float",
"EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
"EXT_shader_texture_lod", "EXT_texture_filter_anisotropic",
"WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB", "KHR_parallel_shader_compile",
"OES_element_index_uint", "OES_standard_derivatives", "OES_texture_float",
"OES_texture_float_linear", "OES_texture_half_float", "OES_texture_half_float_linear",
"OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_compressed_texture_s3tc",
"WEBKIT_WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info", "WEBGL_debug_shaders", "WEBGL_depth_texture",
"WEBKIT_WEBGL_depth_texture", "WEBGL_draw_buffers", "WEBGL_lose_context",
"WEBKIT_WEBGL_lose_context"], "contextProperties": -368668372}
signals.append(["113", devicedata])
signals.append(["116", DEFAULT])
signals.append(["custom_ChromeConsole", False])
signals.append(["custom_webRTC", []])
signals.append(["m", mhash(2166136261, "199" + "3w5e11264sg00" + uuidtoken[
7:20])]) # Object.keys(window).length=199, parseInt('0xFFFFFFFFFFFFFBFF').toString(36)="3w5e11264sg00", 784054202+1382082059=2166136261
signals.append(["r", "199"])
data = Encoder().encode({"errors": [], "signals": signals}, [["timestamp"], ["channelCount", "channelCountMod",
"channelInterpretation", "fftSize",
"frequencyBinCount", "maxChannelCount",
"maxDecibels", "minDecibels",
"numberOfInputs", "numberOfOutputs",
"sampleRate", "smoothingTimeConstant",
"state"], ["hash", "max", "min"],
["audio/mpeg", "audio/ogg", "audio/wav", "audio/wave",
"audio/webm"],
["hasDefaultBrowserHelper", "hasWidevinePlugin",
"plugins"], ["dataFragment", "hashcode"],
["hasToSource", "sourceHash", "stringHash"],
["computedStyleHash"],
["background-repeat: round space;",
"border-image: none;", "border-radius: 4px;",
"color: var(companyblue);", "display: run-in;",
"filter: blur(2px);", "flow-into: main-thread;",
"grid-columns: auto 1fr;", "hyphens: auto;",
"inline-block: none;", "mask-repeat: repeat-x;",
"mask: auto;", "object-fit: contain;",
"overflow-scrolling: touch;", "position: sticky;",
"resize: both;", "tab-size: 4;",
"text-stroke: 2.0px;", "user-select: none;",
"word-break: auto;"],
["", "-moz-", "-ms-", "-webkit-"],
["-moz-osx-font-smoothing", "-webkit-app-region",
"-webkit-text-size-adjust", "animation",
"column-count", "hyphens", "justify-items",
"text-align-last", "text-emphasis",
"text-orientation"],
["caughtException", "userAgentStyleHash"], [],
["global"], ["pageXOffset", "pageYOffset"],
["fonts", "version"],
["callable", "documentElement", "exists", "falsy",
"nullish", "type"], ["foreignElements", "links"],
["innerText", "tagName", "xpath"], [
"d83d-dc69-d83c-dffb-200d-2764-fe0f-200d-d83d-dc69-d83c-dffe",
"d83d-dd2b", "d83d-ddfe", "d83d-decd", "d83e-dd16",
"d83e-dd8b"], ["alpha", "colors"],
["avg", "count", "volume"], ["b", "g", "r"],
["emptyReferrer", "historyLength"],
["completeness", "id", "seen"],
["keyDown", "keyPress", "keyUp"],
["altKey", "ctrlKey", "eventType", "instanceOfUIEvent",
"keyCode", "markedAsTrusted", "metaKey",
"sequenceNumber", "shiftKey", "target", "timestamp"],
["eventType", "keyCode", "modifierKeys",
"sequenceNumber", "target", "timestamp"],
["language", "languages"], ["hash", "mathProperties"],
["mouseClick", "mouseDown", "mouseMove", "mouseUp"],
["button", "eventType", "instanceOfUIEvent",
"markedAsTrusted", "oX", "oY", "sequenceNumber",
"target", "timestamp", "x", "y"],
["button", "eventType", "instanceOfUIEvent",
"markedAsTrusted", "target", "timestamp", "x", "y"],
["mouseButtonEvents", "mouseMoveEvents"],
["button", "eventType", "sequenceNumber", "target",
"timestamp", "x", "y"], ["recent", "throttled"],
["eventType", "timestamp", "x", "y"],
["argumentsValue", "hasArguments", "hasGlobal",
"hasProcess"], ["nonce"],
["avgAlpha", "avgBeta", "avgGamma", "avgInterval",
"numOrientationEvents", "stdDevAlpha", "stdDevBeta",
"stdDevGamma", "stdDevInterval"],
["connectStart", "domComplete",
"domContentLoadedEventEnd",
"domContentLoadedEventStart", "domInteractive",
"domLoading", "loadEventEnd", "loadEventStart",
"requestStart", "responseEnd", "responseStart"],
["statuscode", "value"],
["document", "documentBody", "external", "global",
"navigator"],
["ActiveXObject", "ApplePaySession", "File",
"Int8Array", "MutationObserver", "Notification",
"PushManager", "SharedWorker", "TouchEvent",
"XDomainRequest", "_Selenium_IDE_Recorder",
"__fxdriver_unwrapped", "_phantom",
"addEventListener", "attachEvent", "awesomium",
"callPhantom", "createPopup", "detachEvent",
"dispatchEvent", "domAutomationController", "event",
"external", "fireEvent", "frames", "getComputedStyle",
"globalStorage", "localStorage",
"mozRTCPeerConnection", "mozRequestAnimationFrame",
"phantom", "postMessage", "registerProtocolHandler",
"removeEventListener", "requestAnimationFrame",
"sessionStorage", "sidebar",
"webkitRTCPeerConnection",
"webkitRequestAnimationFrame",
"webkitResolveLocalFileSystemURL"],
["$cdc_asdjflasutopfhvcZLmcfl_",
"_Selenium_IDE_Recorder", "__fxdriver_unwrapped",
"__webdriver_script_fn", "all", "characterSet",
"charset", "compatMode", "documentMode",
"getElementById", "getElementsByClassName",
"hasAttributes", "images", "layers", "querySelector"],
["contextMenu", "innerHTML", "innerText",
"mozRequestFullScreen", "requestFullScreen",
"webdriver", "webkitRequestFullScreen"], ["vibrate"],
["Sequentum"],
["crypto", "document", "documentBody", "external",
"global", "navigator"],
["ActiveXObject", "ApplePaySession", "BluetoothUUID",
"File", "MutationObserver", "Notification",
"PushManager", "SharedWorker", "TouchEvent",
"XDomainRequest", "_Selenium_IDE_Recorder",
"__fxdriver_unwrapped", "_phantom", "attachEvent",
"callPhantom", "createPopup", "detachEvent", "event",
"external", "fireEvent", "frameElement",
"globalStorage", "localStorage",
"mozRTCPeerConnection", "mozRequestAnimationFrame",
"netscape", "phantom", "postMessage",
"registerProtocolHandler", "requestAnimationFrame",
"sessionStorage", "sidebar",
"webkitRTCPeerConnection",
"webkitRequestAnimationFrame",
"webkitResolveLocalFileSystemURL"],
["$cdc_asdjflasutopfhvcZLmcfl_",
"_Selenium_IDE_Recorder", "__fxdriver_unwrapped",
"__webdriver_script_fn", "all", "characterSet",
"charset", "compatMode", "documentMode", "images",
"layers"],
["contextMenu", "innerText", "mozRequestFullScreen",
"requestFullScreen", "webkitRequestFullScreen"],
["bluetooth", "credentials",
"requestMediaKeySystemAccess", "storage", "vibrate",
"webdriver"], ["subtle"],
["global", "locationbar", "navigator", "operaVersion",
"screen", "toolbar"],
["devicePixelRatio", "innerHeight", "innerWidth",
"isSecureContext", "outerHeight", "outerWidth",
"screenX", "screenY"],
["availHeight", "availWidth", "colorDepth", "height",
"pixelDepth", "width"],
["appCodeName", "appName", "appVersion", "buildID",
"cpuClass", "doNotTrack", "hardwareConcurrency",
"maxTouchPoints", "oscpu", "platform", "product",
"productSub", "userAgent", "vendor", "vendorSub",
"webdriver"], ["ip", "model"],
["constructor", "lastChance"], ["events"],
["accuracy", "timestamp", "x", "y", "z"],
["level", "powerSource", "status", "technology",
"temp", "voltage"],
["androidId", "board", "deviceBrand", "deviceModel",
"deviceModelNumber", "hardware", "hardwareName",
"manufacturer", "osBuildFingerprint", "osBuildNumber",
"osName", "osVersion", "product", "serial"],
["availableRam", "availableStorage", "totalRam",
"totalStorage"],
["bignox", "bluestacks", "genymotion", "superuser"],
["kernelPatch"],
["country", "currency", "language", "timezone"],
["accuracy", "distance", "timestamp"],
["density", "height", "width"],
["configId", "errorArray", "kernelId", "kernelURI",
"kernelUpdateHeaderName", "lastErrorCount",
"lastErrorId", "lastErrorTimestamp",
"timeSinceLastRequest"],
["jvmVersion", "osArch", "osName", "osVersion"],
["timestamp", "x", "y", "z"], ["level", "status"],
["appBundleName", "appInstallId", "appVersion",
"cfBundleInfo", "deviceBrand", "deviceModel",
"deviceModelNumber", "intAppVersion", "osType",
"osVersion", "sdkVersion"],
["availableStorage", "numCores", "timestamp",
"totalRam", "uptimeSinceBoot"],
["brightness", "density", "height", "width"],
["hw.cputype", "hw.model", "hw.physicalcpu",
"kern.boottime", "kern.hostname", "kern.proc",
"kern.version"], ["appdir"], ["jailbreak"],
["data", "mnt", "storage"], ["eth0", "p2p0", "wlan0"],
["root"], ["cpuinfo", "date", "uname", "whoami"],
["net.hostname", "ro.boot.boottime",
"ro.build.date.utc", "ro.build.fingerprint",
"ro.runtime.firstboot", "serialno"],
["afterReady", "immediately", "lastChance"],
["InstallTrigger", "controllers"], ["status", "value"],
["bodyAttribute", "scriptPresent"], ["hash"],
["description", "message", "name", "num", "stack",
"stacktrace"],
["length", "punctuators", "whitespace"],
["touchEnd", "touchMove", "touchStart"],
["eventType", "timestamp", "touches"],
["oX", "oY", "x", "y"], ["x", "y"],
["3gpp; codecs=\"mp4v.20.8, samr\"",
"mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"", "mp4",
"mp4; codecs=\"avc1.42c00d\"",
"mp4; codecs=\"avc1.64001E, mp4a.40.2\"",
"mp4; codecs=\"mp4v.20.8, mp4a.40.2\"",
"mp4; codecs=bogus", "mp4; codecs=mp4a.40.2", "mpeg",
"ogg; codecs=\"theora, speex\"", "ogg; codecs=opus",
"ogg; codecs=speex", "ogg; codecs=theora",
"wav; codecs=\"0\"", "wav; codecs=\"1\"",
"wav; codecs=\"2\"", "wave", "wave; codecs=0",
"wave; codecs=1", "wave; codecs=2",
"webm; codecs=\"vorbis,vp9\"",
"webm; codecs=\"vp8, vorbis\"", "webm; codecs=vorbis",
"x-mpeg", "x-mpegurl"],
["events", "finalState", "initialState",
"visibilityEventCount"], ["timestamp", "visible"],
["contextProperties", "parameters", "shaderPrecisions",
"supportedExtensions"],
["antialias", "debugInfo", "dimensions",
"maxAnisotropy", "params"],
["alphaBits", "blueBits", "depthBits", "greenBits",
"maxCombinedTextureImageUnits",
"maxCubeMapTextureSize", "maxFragmentUniformVectors",
"maxRenderbufferSize", "maxTextureImageUnits",
"maxTextureSize", "maxVaryingVectors",
"maxVertexAttribs", "maxVertexTextureImageUnits",
"maxVertexUniformVectors", "redBits", "renderer",
"shadingLanguageVersion", "stencilBits", "vendor",
"version"], ["renderer", "vendor"],
["candidate", "ip"],
["hasSpeechSynthesis", "voiceData"],
["hash", "match", "noOfDefaultVoices", "noOfVoices",
"relLang", "relVoiceUri"], ["bursts", "events"],
["errors", "signals"]])
print(data)
x = Encoder().encode(data, [["timestamp"], ["channelCount", "channelCountMod", "channelInterpretation", "fftSize",
"frequencyBinCount", "maxChannelCount", "maxDecibels", "minDecibels",
"numberOfInputs", "numberOfOutputs", "sampleRate",
"smoothingTimeConstant",
"state"], ["hash", "max", "min"],
["audio/mpeg", "audio/ogg", "audio/wav", "audio/wave", "audio/webm"],
["hasDefaultBrowserHelper", "hasWidevinePlugin", "plugins"],
["dataFragment", "hashcode"],
["hasToSource", "sourceHash", "stringHash"], ["computedStyleHash"],
["background-repeat: round space;", "border-image: none;", "border-radius: 4px;",
"color: var(companyblue);", "display: run-in;", "filter: blur(2px);",
"flow-into: main-thread;", "grid-columns: auto 1fr;", "hyphens: auto;",
"inline-block: none;", "mask-repeat: repeat-x;", "mask: auto;", "object-fit: contain;",
"overflow-scrolling: touch;", "position: sticky;", "resize: both;", "tab-size: 4;",
"text-stroke: 2.0px;", "user-select: none;", "word-break: auto;"],
["", "-moz-", "-ms-", "-webkit-"],
["-moz-osx-font-smoothing", "-webkit-app-region", "-webkit-text-size-adjust",
"animation",
"column-count", "hyphens", "justify-items", "text-align-last", "text-emphasis",
"text-orientation"], ["caughtException", "userAgentStyleHash"], [], ["global"],
["pageXOffset", "pageYOffset"], ["fonts", "version"],
["callable", "documentElement", "exists", "falsy", "nullish", "type"],
["foreignElements", "links"], ["innerText", "tagName", "xpath"],
["d83d-dc69-d83c-dffb-200d-2764-fe0f-200d-d83d-dc69-d83c-dffe", "d83d-dd2b",
"d83d-ddfe",
"d83d-decd", "d83e-dd16", "d83e-dd8b"], ["alpha", "colors"],
["avg", "count", "volume"],
["b", "g", "r"], ["emptyReferrer", "historyLength"], ["completeness", "id", "seen"],
["keyDown", "keyPress", "keyUp"],
["altKey", "ctrlKey", "eventType", "instanceOfUIEvent", "keyCode", "markedAsTrusted",
"metaKey", "sequenceNumber", "shiftKey", "target", "timestamp"],
["eventType", "keyCode", "modifierKeys", "sequenceNumber", "target", "timestamp"],
["language", "languages"], ["hash", "mathProperties"],
["mouseClick", "mouseDown", "mouseMove", "mouseUp"],
["button", "eventType", "instanceOfUIEvent", "markedAsTrusted", "oX", "oY",
"sequenceNumber", "target", "timestamp", "x", "y"],
["button", "eventType", "instanceOfUIEvent", "markedAsTrusted", "target", "timestamp",
"x",
"y"], ["mouseButtonEvents", "mouseMoveEvents"],
["button", "eventType", "sequenceNumber", "target", "timestamp", "x", "y"],
["recent", "throttled"], ["eventType", "timestamp", "x", "y"],
["argumentsValue", "hasArguments", "hasGlobal", "hasProcess"], ["nonce"],
["avgAlpha", "avgBeta", "avgGamma", "avgInterval", "numOrientationEvents",
"stdDevAlpha",
"stdDevBeta", "stdDevGamma", "stdDevInterval"],
["connectStart", "domComplete", "domContentLoadedEventEnd",
"domContentLoadedEventStart",
"domInteractive", "domLoading", "loadEventEnd", "loadEventStart", "requestStart",
"responseEnd", "responseStart"], ["statuscode", "value"],
["document", "documentBody", "external", "global", "navigator"],
["ActiveXObject", "ApplePaySession", "File", "Int8Array", "MutationObserver",
"Notification", "PushManager", "SharedWorker", "TouchEvent", "XDomainRequest",
"_Selenium_IDE_Recorder", "__fxdriver_unwrapped", "_phantom", "addEventListener",
"attachEvent", "awesomium", "callPhantom", "createPopup", "detachEvent",
"dispatchEvent",
"domAutomationController", "event", "external", "fireEvent", "frames",
"getComputedStyle",
"globalStorage", "localStorage", "mozRTCPeerConnection", "mozRequestAnimationFrame",
"phantom", "postMessage", "registerProtocolHandler", "removeEventListener",
"requestAnimationFrame", "sessionStorage", "sidebar", "webkitRTCPeerConnection",
"webkitRequestAnimationFrame", "webkitResolveLocalFileSystemURL"],
["$cdc_asdjflasutopfhvcZLmcfl_", "_Selenium_IDE_Recorder", "__fxdriver_unwrapped",
"__webdriver_script_fn", "all", "characterSet", "charset", "compatMode",
"documentMode",
"getElementById", "getElementsByClassName", "hasAttributes", "images", "layers",
"querySelector"],
["contextMenu", "innerHTML", "innerText", "mozRequestFullScreen", "requestFullScreen",
"webdriver", "webkitRequestFullScreen"], ["vibrate"], ["Sequentum"],
["crypto", "document", "documentBody", "external", "global", "navigator"],
["ActiveXObject", "ApplePaySession", "BluetoothUUID", "File", "MutationObserver",
"Notification", "PushManager", "SharedWorker", "TouchEvent", "XDomainRequest",
"_Selenium_IDE_Recorder", "__fxdriver_unwrapped", "_phantom", "attachEvent",
"callPhantom", "createPopup", "detachEvent", "event", "external", "fireEvent",
"frameElement", "globalStorage", "localStorage", "mozRTCPeerConnection",
"mozRequestAnimationFrame", "netscape", "phantom", "postMessage",
"registerProtocolHandler", "requestAnimationFrame", "sessionStorage", "sidebar",
"webkitRTCPeerConnection", "webkitRequestAnimationFrame",
"webkitResolveLocalFileSystemURL"],
["$cdc_asdjflasutopfhvcZLmcfl_", "_Selenium_IDE_Recorder", "__fxdriver_unwrapped",
"__webdriver_script_fn", "all", "characterSet", "charset", "compatMode",
"documentMode",
"images", "layers"],
["contextMenu", "innerText", "mozRequestFullScreen", "requestFullScreen",
"webkitRequestFullScreen"],
["bluetooth", "credentials", "requestMediaKeySystemAccess", "storage", "vibrate",
"webdriver"], ["subtle"],
["global", "locationbar", "navigator", "operaVersion", "screen", "toolbar"],
["devicePixelRatio", "innerHeight", "innerWidth", "isSecureContext", "outerHeight",
"outerWidth", "screenX", "screenY"],
["availHeight", "availWidth", "colorDepth", "height", "pixelDepth", "width"],
["appCodeName", "appName", "appVersion", "buildID", "cpuClass", "doNotTrack",
"hardwareConcurrency", "maxTouchPoints", "oscpu", "platform", "product", "productSub",
"userAgent", "vendor", "vendorSub", "webdriver"], ["ip", "model"],
["constructor", "lastChance"], ["events"], ["accuracy", "timestamp", "x", "y", "z"],
["level", "powerSource", "status", "technology", "temp", "voltage"],
["androidId", "board", "deviceBrand", "deviceModel", "deviceModelNumber", "hardware",
"hardwareName", "manufacturer", "osBuildFingerprint", "osBuildNumber", "osName",
"osVersion", "product", "serial"],
["availableRam", "availableStorage", "totalRam", "totalStorage"],
["bignox", "bluestacks", "genymotion", "superuser"], ["kernelPatch"],
["country", "currency", "language", "timezone"], ["accuracy", "distance", "timestamp"],
["density", "height", "width"],
["configId", "errorArray", "kernelId", "kernelURI", "kernelUpdateHeaderName",
"lastErrorCount", "lastErrorId", "lastErrorTimestamp", "timeSinceLastRequest"],
["jvmVersion", "osArch", "osName", "osVersion"], ["timestamp", "x", "y", "z"],
["level", "status"],
["appBundleName", "appInstallId", "appVersion", "cfBundleInfo", "deviceBrand",
"deviceModel", "deviceModelNumber", "intAppVersion", "osType", "osVersion",
"sdkVersion"],
["availableStorage", "numCores", "timestamp", "totalRam", "uptimeSinceBoot"],
["brightness", "density", "height", "width"],
["hw.cputype", "hw.model", "hw.physicalcpu", "kern.boottime", "kern.hostname",
"kern.proc",
"kern.version"], ["appdir"], ["jailbreak"], ["data", "mnt", "storage"],
["eth0", "p2p0", "wlan0"], ["root"], ["cpuinfo", "date", "uname", "whoami"],
["net.hostname", "ro.boot.boottime", "ro.build.date.utc", "ro.build.fingerprint",
"ro.runtime.firstboot", "serialno"], ["afterReady", "immediately", "lastChance"],
["InstallTrigger", "controllers"], ["status", "value"],
["bodyAttribute", "scriptPresent"],
["hash"], ["description", "message", "name", "num", "stack", "stacktrace"],
["length", "punctuators", "whitespace"], ["touchEnd", "touchMove", "touchStart"],
["eventType", "timestamp", "touches"], ["oX", "oY", "x", "y"], ["x", "y"],
["3gpp; codecs=\"mp4v.20.8, samr\"", "mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"", "mp4",
"mp4; codecs=\"avc1.42c00d\"", "mp4; codecs=\"avc1.64001E, mp4a.40.2\"",
"mp4; codecs=\"mp4v.20.8, mp4a.40.2\"", "mp4; codecs=bogus", "mp4; codecs=mp4a.40.2",
"mpeg", "ogg; codecs=\"theora, speex\"", "ogg; codecs=opus", "ogg; codecs=speex",
"ogg; codecs=theora", "wav; codecs=\"0\"", "wav; codecs=\"1\"", "wav; codecs=\"2\"",
"wave", "wave; codecs=0", "wave; codecs=1", "wave; codecs=2",
"webm; codecs=\"vorbis,vp9\"", "webm; codecs=\"vp8, vorbis\"", "webm; codecs=vorbis",
"x-mpeg", "x-mpegurl"],
["events", "finalState", "initialState", "visibilityEventCount"],
["timestamp", "visible"],
["contextProperties", "parameters", "shaderPrecisions", "supportedExtensions"],
["antialias", "debugInfo", "dimensions", "maxAnisotropy", "params"],
["alphaBits", "blueBits", "depthBits", "greenBits", "maxCombinedTextureImageUnits",
"maxCubeMapTextureSize", "maxFragmentUniformVectors", "maxRenderbufferSize",
"maxTextureImageUnits", "maxTextureSize", "maxVaryingVectors", "maxVertexAttribs",
"maxVertexTextureImageUnits", "maxVertexUniformVectors", "redBits", "renderer",
"shadingLanguageVersion", "stencilBits", "vendor", "version"], ["renderer", "vendor"],
["candidate", "ip"], ["hasSpeechSynthesis", "voiceData"],
["hash", "match", "noOfDefaultVoices", "noOfVoices", "relLang", "relVoiceUri"],
["bursts", "events"], ["errors", "signals"]])
print(x)
print(len(x))
print(test())
......@@ -96,4 +96,10 @@ console.log(base64_decode(aaa))
let arr = [73,141,22,148,21,107,145,111,49,209,13,127,75,72,120,55,40,112,93,91,89,53,206,59,225,235,99,253,8,94,227,50,247,103,101,187,24,243,209,149,39,55,9,235,146,142,182,64,90,192,118,208,81,107,66,172,50,206,221,122,220,154,80,253,27,240,50,177,36,143,168,83,177,128,64,203,159,83,8,111,254,124,44,117,221,42,130,162,205,228,122,169,126,59,192,62,242,171,121,220,223,198,87,239,254,122,56,89,227,3,44,176,15,185,135,8,58,181,135,186,160,27,121,47,76,88,167,47,51,53,204,17,99,128,89,47,104,136,162,62,37,152,176,112,132,148,142,102,69,5,219,42,15,92,224,93,180,12,142,66,84,201,14,114,155,110,132,209,116,23,195,172,108,1,196,220,21,16,158,119,155,42,24,242,238,202,207,199,242,225,118,60,210,46,12,228,233,143,155,19,239,30,13,148,19,186,63,179,43,183,167,121,187,111,152,153,176,117,1,74,171,208,36,80,188,109,38,91,53,187,241,46,101,113,99,112,217,82,172,25,139,228,214,207,179,100,88,35,210,190,254,225,228,164,249,180,143,238,119,87,110,148,156,217,61,227,25,178,135,20,197,196,122,98,234,71,76,70,45,215,222,103,148,128,86,108,78,167,49,134,59,40,91,164,82,42,84,154,88,52,123,227,14,61,187,102,106,226,118,110,111,78,7,56,3,120,213,79,172,225,127,225,115,172,158,53,132,178,17,33,57,25,83,122,160,61,182,40,221,254,217,89,120,57,2,214,124,231,6,97,100,119,160,114,48,45,20,135,250,137,128,62,191,230,218,223,157,128,148,78,250,113,186,240,27,166,106,19,67,110,95,241,223,2,115,87,161,10,157,188,253,253,143,127,43,125,79,178,125,229,199,51,90,46,58,41,94,94,138,60,3,19,226,66,187,125,114,158,66,243,71,122,234,52,178,45,227,252,12,228,134,190,44,108,54,246,79,221,233,193,87,239,130,110,111,104,120,69,165,241,93,150,80,73,245,112,14,16,150,163,160,151,198,227,121,245,69,161,82,9,74,241,224,74,14,60,184,86,231,218,221,77,185,90,100,228,100,126,147,147,176,0,187,160,90,29,242,114,170,81,124,99,14,34,60,22,20,99,184,147,155,107,205,74,195,96,74,226,57,99,73,173,235,80,244,151,181,44,237,33,33,112,149,130,164,239,187,184,93,207,73,15,168,205,95,213,214,197,140,207,149,83,183,183,255,108,30,162,113,101,66,124,34,57,184,94,191,224,42,102,31,156,27,225,180,209,150,121,29,111,250,76,31,40,64,246,83,207,244,236,51,149,232,164,67,70,9,236,201,161,178,35,247,31,123,179,106,97,242,43,28,172,151,86,226,175,97,123,175,199,170,106,17,151,17,93,129,179,58,58,222,245,71,214,152,98,132,249,205,51,76,214,58,202,75,159,146,57,110,139,145,104,218,21,29,212,188,188,112,154,4,212,224,148,243,46,165,35,224,130,114,67,139,93,128,197,236,173,63,129,73,222,165,220,214,147,56,85,168,239,45,83,8,163,190,75,94,72,89,16,9,62,90,2,1,109,159,152,49,224,6,0,254,67,129,27,149,65,54,20,127,111,92,144,187,181,115,240,2,141,73,27,133,99,79,23,163,240,27,63,51,35,209,121,10,100,150,159,29,217,184,93,152,145,34,41,130,183,34,28,29,191,28,86,181,24,45,44,37,132,180,235,118,243,99,203,200,242,210,110,39,32,229,131,253,99,232,138,122,193,12,251,190,16,169,140,229,192,226,202,30,240,25,123,47,231,171,222,142,202,97,112,231,182,103,179,102,190,190,189,130,45,218,220,4,153,41,90,220,199,165,164,23,248,55,0,152,174,166,196,23,45,41,189,216,122,218,218,19,196,149,116,160,82,79,109,142,26,54,210,121,160,45,54,218,90,251,25,143,242,121,195,212,219,104,103,44,232,91,230,112,123,13,55,231,170,221,186,59,211,34,250,243,123,187,204,79,35,191,14,92,128,255,209,5,103,56,113,244,180,238,77,249,243,92,94,80,95,68,46,225,73,85,244,96,46,16,135,171,250,178,44,250,236,53,254,176,12,149,32,208,190,72,119,185,230,32,114,36,232,61,141,3,101,145,98,220,121,13,123,20,98,231,49,97,199,236,173,81,21,160,146,17,115,78,172,43,237,209,20,94,59,182,27,152,121,126,227,68,108,80,114,125,252,89,135,148,179,94,172,36,243,194,175,30,208,238,72,118,42,69,8,136,126,6,116,20,77,134,219,48,79,139,232,233,88,62,87,239,163,4,167,184,44,17,189,163,128,199,233,193,20,189,90,112,169,187,171,246,33,212,136,170,61,152,162,169,25,235,18,252,238,27,68,44,215,245,180,153,52,131,57,253,178,18,125,156,4,134,237,41,217,247,74,120,178,189,246,237,251,232,244,248,52,153,240,246,35,143,83,140,28,99,209,201,152,0,245,92,34,214,93,140,152,20,156,238,14,110,87,8,200,236,57,166,74,122,222,237,212,160,65,68,234,128,96,240,131,153,68,179,221,199,247,67,51,143,79,227,185,141,255,117,25,102,42,242,121,126,43,192,34,44,162,237,60,138,194,65,56,213,14,84,168,38,125,3,241,252,141,201,98,129,233,2,149,195,181,248,238,56,11,11,8,230,112,181,169,229,1,155,237,139,155,223,27,166,158,62,199,25,126,154,181,197,128,145,179,151,124,59,192,18,195,140,121,183,135,0]
let rrr = [49,209,13,127,75,72,120,55,40,112,93,91,89,53,206,59,225,235,99,253,8,94,227,50,247,103,101,187,24,243,209,149,39,55,9,235,146,142,182,64,90,192,118,208,81,107,66,172,50,206,221,122,220,154,80,253,27,240,50,177,36,143,168,83,177,128,64,203,159,83,8,111,254,124,44,117,221,42,130,162,205,228,122,169,126,59,192,62,242,171,121,220,223,198,87,239,254,122,56,89,227,3,44,176,15,185,135,8,58,181,135,186,160,27,121,47,76,88,167,47,51,53,204,17,99,128,89,47,104,136,162,62,37,152,176,112,132,148,142,102,69,5,219,42,15,92,224,93,180,12,142,66,84,201,14,114,155,110,132,209,116,23,195,172,108,1,196,220,21,16,158,119,155,42,24,242,238,202,207,199,242,225,118,60,210,46,12,228,233,143,155,19,239,30,13,148,19,186,63,179,43,183,167,121,187,111,152,153,176,117,1,74,171,208,36,80,188,109,38,91,53,187,241,46,101,113,99,112,217,82,172,25,139,228,214,207,179,100,88,35,210,190,254,225,228,164,249,180,143,238,119,87,110,148,156,217,61,227,25,178,135,20,197,196,122,98,234,71,76,70,45,215,222,103,148,128,86,108,78,167,49,134,59,40,91,164,82,42,84,154,88,52,123,227,14,61,187,102,106,226,118,110,111,78,7,56,3,120,213,79,172,225,127,225,115,172,158,53,132,178,17,33,57,25,83,122,160,61,182,40,221,254,217,89,120,57,2,214,124,231,6,97,100,119,160,114,48,45,20,135,250,137,128,62,191,230,218,223,157,128,148,78,250,113,186,240,27,166,106,19,67,110,95,241,223,2,115,87,161,10,157,188,253,253,143,127,43,125,79,178,125,229,199,51,90,46,58,41,94,94,138,60,3,19,226,66,187,125,114,158,66,243,71,122,234,52,178,45,227,252,12,228,134,190,44,108,54,246,79,221,233,193,87,239,130,110,111,104,120,69,165,241,93,150,80,73,245,112,14,16,150,163,160,151,198,227,121,245,69,161,82,9,74,241,224,74,14,60,184,86,231,218,221,77,185,90,100,228,100,126,147,147,176,0,187,160,90,29,242,114,170,81,124,99,14,34,60,22,20,99,184,147,155,107,205,74,195,96,74,226,57,99,73,173,235,80,244,151,181,44,237,33,33,112,149,130,164,239,187,184,93,207,73,15,168,205,95,213,214,197,140,207,149,83,183,183,255,108,30,162,113,101,66,124,34,57,184,94,191,224,42,102,31,156,27,225,180,209,150,121,29,111,250,76,31,40,64,246,83,207,244,236,51,149,232,164,67,70,9,236,201,161,178,35,247,31,123,179,106,97,242,43,28,172,151,86,226,175,97,123,175,199,170,106,17,151,17,93,129,179,58,58,222,245,71,214,152,98,132,249,205,51,76,214,58,202,75,159,146,57,110,139,145,104,218,21,29,212,188,188,112,154,4,212,224,148,243,46,165,35,224,130,114,67,139,93,128,197,236,173,63,129,73,222,165,220,214,147,56,85,168,239,45,83,8,163,190,75,94,72,89,16,9,62,90,2,1,109,159,152,49,224,6,0,254,67,129,27,149,65,54,20,127,111,92,144,187,181,115,240,2,141,73,27,133,99,79,23,163,240,27,63,51,35,209,121,10,100,150,159,29,217,184,93,152,145,34,41,130,183,34,28,29,191,28,86,181,24,45,44,37,132,180,235,118,243,99,203,200,242,210,110,39,32,229,131,253,99,232,138,122,193,12,251,190,16,169,140,229,192,226,202,30,240,25,123,47,231,171,222,142,202,97,112,231,182,103,179,102,190,190,189,130,45,218,220,4,153,41,90,220,199,165,164,23,248,55,0,152,174,166,196,23,45,41,189,216,122,218,218,19,196,149,116,160,82,79,109,142,26,54,210,121,160,45,54,218,90,251,25,143,242,121,195,212,219,104,103,44,232,91,230,112,123,13,55,231,170,221,186,59,211,34,250,243,123,187,204,79,35,191,14,92,128,255,209,5,103,56,113,244,180,238,77,249,243,92,94,80,95,68,46,225,73,85,244,96,46,16,135,171,250,178,44,250,236,53,254,176,12,149,32,208,190,72,119,185,230,32,114,36,232,61,141,3,101,145,98,220,121,13,123,20,98,231,49,97,199,236,173,81,21,160,146,17,115,78,172,43,237,209,20,94,59,182,27,152,121,126,227,68,108,80,114,125,252,89,135,148,179,94,172,36,243,194,175,30,208,238,72,118,42,69,8,136,126,6,116,20,77,134,219,48,79,139,232,233,88,62,87,239,163,4,167,184,44,17,189,163,128,199,233,193,20,189,90,112,169,187,171,246,33,212,136,170,61,152,162,169,25,235,18,252,238,27,68,44,215,245,180,153,52,131,57,253,178,18,125,156,4,134,237,41,217,247,74,120,178,189,246,237,251,232,244,248,52,153,240,246,35,143,83,140,28,99,209,201,152,0,245,92,34,214,93,140,152,20,156,238,14,110,87,8,200,236,57,166,74,122,222,237,212,160,65,68,234,128,96,240,131,153,68,179,221,199,247,67,51,143,79,227,185,141,255,117,25,102,42,242,121,126,43,192,34,44,162,237,60,138,194,65,56,213,14,84,168,38,125,3,241,252,141,201,98,129,233,2,149,195,181,248,238,56,11,11,8,230,112,181,169,229,1,155,237,139,155,223,27,166,158,62,199,25,126,154,181,197,128,145,179,151,124,59,192,18,195,140,121,183,135,0]
console.log(encode_b64(arr))
\ No newline at end of file
console.log(encode_b64(arr))
-2447
s = -1728803817
for (let i = 0; i < 32; i++) {
console.log((s>>(32-i))&4294967295)
}
\ No newline at end of file
......@@ -6084,7 +6084,7 @@ window.imageDatas = [];
tH.n[tH.n.length - 2] = delete tH.n[tH.n.length - 2][tH.n[tH.n.length - 1]];
tH.n.length -= 1
}, function (tS) {
console.log(tS.n[tS.n.length - 2], 'ininin', tS.n[tS.n.length - 1], tS.n[tS.n.length - 2] in tS.n[tS.n.length - 1])
console.log(tS.n[tS.n.length - 2], 'ininin', tS.n[tS.n.length - 2] in tS.n[tS.n.length - 1])
tS.n[tS.n.length - 2] = tS.n[tS.n.length - 2] in tS.n[tS.n.length - 1];
tS.n.length -= 1
}, function (tk) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
r = {"X-1ItxWO9i-f": "A9ZRMMqJAQAAt5hSE13YbJXA2BzSQjnbBACoxK4mguq3Ok2JNF2eYkXsXTXEAS2LJzKuchRAwH8AAEB3AAAAAA==", "X-B3-TraceId": "9cf0661264efdb4a", "Accept-Encoding": "gzip, deflate, br", "Referer": "https://www.jetblue.com/booking/flights?from=BOS&to=LGA&depart=2023-09-02&isMultiCity=false&noOfRoute=1&lang=en&adults=4&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false", "X-1ItxWO9i-d": "ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8Aw70F2VFuvHUAAAAAH29cNgB-AI4z2JdsnUn3R9cQhaIr", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "same-site", "X-1ItxWO9i-z": "q", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "Accept-Language": "en-US,en;q=0.9", "Booking-Application-Type": "NGB", "Origin": "https://www.jetblue.com", "Sec-Fetch-Dest": "empty", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", "X-1ItxWO9i-a": "vSgugqMc0yw2RYUAOjMMjJZAQ08QI_pKxoUH6wWc23DKFHQloka5rwwhopH00Y_7=QFernMtBKyB9cJiXgTx5JT_M=ga_HGvhS3nMupSs_oDHT8UOnaxRBCfHO6JNuwL0Zb7KBm2MuODNKpxMtF0KPcRAacLUJbGGdD3XIvabniVxxYCmdHx5a8uEQYp-Z5rxDZs7DerGFZW43O0WtNMTxkcV==76WEHsvalt6o4DMV2VhouypdF_ybT-GiaaH2RDfaB9DhCncxmjoPBWqajWw_OS0MmqilkluwmnwgfFW4_ZdfKFKgkOd6c9OdhDSJmayyBAKioEP7AgCPh1f=JKbGCj3_pD0AVm5LCD1aYU6W7c=EpKY0-SA-e4GynapxbmyGcLjGUfMv9FF2Z9r0y_UTYXY2Vq-b6ijgmgoOcMZBHSgXC=278nSbQte8mJZ89PaKWybDWrT2-sEgHotvwVi2m=U2hNjXli2UtMu=kC1HhUgsAX_6_YKKPjNF23xXbhlcCwq1hfpheWBNwifYAUs80XEn4ejy5yN7nt4wAHUPb7_oAtkxgCjnEmNSPuv5Cv5qta5h2p8aPNlARgsRPOTxZxxnbQp07BAiEGstKbc9UXFas1CodOYAFN7Ud25Tn0nXN-9UX=g6Qdr2DqAldsKJLS1_7y5duKCqBNfFMNGX_MflkZuIoA_8fU5D_AsEHmyTAre-bQ_LHN1lWTmJub_Aa9RwlYc1WgZPPxRHI_yHZFGKcVuIJ_V467uv0YZ5QY2KGnwPZlpi1cqaCsBvpMat-SUp1U9duDurLTrW7GTo-hL9hn92strjT-aELYR25lZ2i1MXf5mZTVc_lh7ZKosTTanNdWbwm0h4DG_I-RP7XaTXhVYBnn7B9AHU197XCu4eEMm8IirF-N41D_iWx9LuTiGmEiXsp55Vp-JoGDehZ9w5Zi98j=0wMpORmOEc8IlOLivWLqLpBbaIAmvE6rpd1_yT8IoE8GSeJks3uVBohT-duXEE7ebc9qCAx0_SsdU-SDs7A3P4g5Vv3LmCs8oS3mICmvSsCBl6mg-_Y=y_NWiu1a0oyyfQ_uO2Ri04xtIsE6XRKa5=bYbDabCIftAYo_Mf2r8MgMbHX7iGud3S_ksdXHknP-8uMw-1_ZmDhUqHDymZtweQN-9gQqgn3TFUVJ2dp_9C9lomPpMkXXWYMtmhy10miPamx=wZZdjijtY3269UXYmCj7apLu92-WLYX=cMMntTLEm7SJ43=7I1MW3FWm7AKKmnhXKuZ=l2PlG1LW8A=ggy3tMtnuxaSGJwEHH2bSRMwUndyJAi2RXSwOMi2IZ=-RUhbs3UKY=ikObMa=NuZmKoex2TqcEIniEt4wcq7NMbFvp=VFSjI59A3AjFLQXm2=1MnJeeR2Q2OT7SOZKwALGpiWebrYEtw4EvyCZyNQ-pRPEly1c-YPNIMjiuJPyKTPadt6EhS9HrurqOCrcuhuPVqTJLH1nIqFIjpUeSCm3pyKSthryqFE3XthcRd1moM_4Idla6pchmW6juk1GlMCp50-DgXlBx9Ps1ft3q3vEvfVc62oOHYxtMTqYNEg1V335utCo-l=0lsRu1epQUk7_BMkSN2i7XSsiJ=2mN15fEDcp64vRX0eaJr8sYtXtUxmeDjHY=mjpfISVDpCuR46_qxiyRWnBjnFSXmfgVl5Rv-BpHA_=EVWYbitEHEMF-bOdSHnfeOTL6vGpgsVKI54sMm=sXjN5inGiQHYt2HpHUS4ehmycB4N12Tn74yNrNLMWu_oI3y9Z7L90rSLuWFK3rP-xYMW6DLett4TkF_HyW9HwGMV8vVR2RkBUhgVPxLMs4r2WhmYlXTmh1EvjIgb=Mx_KviC8IdhnJ2p4Qt1BqNPp", "X-1ItxWO9i-b": "9styk5", "X-B3-SpanId": "1691314314182", "Accept": "application/json", "Application-Channel": "Desktop_Web", "Content-Type": "application/json", "x-auth-token": "", "API-Version": "v3", "X-1ItxWO9i-c": "AMCdLsqJAQAALTEpQdA8oI008XYlfeuUoFWVU10DZx45eBAVesO9BdlRbrx1", "sec-ch-ua": "\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""}
k=[[0,4,8,12],[1,5,9,13],[2,6,10,14],[3,7,11,15],[0,5,10,15],[1,6,11,12],[2,7,8,13],[3,4,9,14]]
l=[16,12,8,7]
for p in k:
for i in range(0,4):
print(p[2*i%4],p[2*i%4+1])
print(p[(2*i+3)%4],p[2*i%4],l[i%4])
print(len(r['X-1ItxWO9i-a']))
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment