Untitled
unknown
python
3 years ago
2.9 kB
8
Indexable
from hashlib import md5
import time
class signature:
def __init__(self, params: str, data: str, cookies: str) -> None:
self.params = params
self.data = data
self.cookies = cookies
def hash(self, data: str) -> str:
return str(md5(data.encode()).hexdigest())
def calc_gorgon(self) -> str:
gorgon = self.hash(self.params)
if self.data:
gorgon += self.hash(self.data)
else:
gorgon += str("0"*32)
if self.cookies:
gorgon += self.hash(self.cookies)
else:
gorgon += str("0"*32)
gorgon += str("0"*32)
return gorgon
def get_value(self):
gorgon = self.calc_gorgon()
return self.encrypt(gorgon)
def encrypt(self, data: str):
unix = int(time.time())
len = 0x14
key = [
0xDF,
0x77,
0xB9,
0x40,
0xB9,
0x9B,
0x84,
0x83,
0xD1,
0xB9,
0xCB,
0xD1,
0xF7,
0xC2,
0xB9,
0x85,
0xC3,
0xD0,
0xFB,
0xC3,
]
param_list = []
for i in range(0, 12, 4):
temp = data[8 * i : 8 * (i + 1)]
for j in range(4):
H = int(temp[j * 2 : (j + 1) * 2], 16)
param_list.append(H)
param_list.extend([0x0, 0x6, 0xB, 0x1C])
H = int(hex(unix), 16)
param_list.append((H & 0xFF000000) >> 24)
param_list.append((H & 0x00FF0000) >> 16)
param_list.append((H & 0x0000FF00) >> 8)
param_list.append((H & 0x000000FF) >> 0)
eor_result_list = []
for A, B in zip(param_list, key):
eor_result_list.append(A ^ B)
for i in range(len):
C = self.reverse(eor_result_list[i])
D = eor_result_list[(i + 1) % len]
E = C ^ D
F = self.rbit(E)
H = ((F ^ 0xFFFFFFFF) ^ len) & 0xFF
eor_result_list[i] = H
result = ""
for param in eor_result_list:
result += self.hex_string(param)
return {"X-Gorgon": ("0404b0d30000" + result), "X-Khronos": str(unix)}
def rbit(self, num):
result = ""
tmp_string = bin(num)[2:]
while len(tmp_string) < 8:
tmp_string = "0" + tmp_string
for i in range(0, 8):
result = result + tmp_string[7 - i]
return int(result, 2)
def hex_string(self, num):
tmp_string = hex(num)[2:]
if len(tmp_string) < 2:
tmp_string = "0" + tmp_string
return tmp_string
def reverse(self, num):
tmp_string = self.hex_string(num)
return int(tmp_string[1:] + tmp_string[:1], 16)
if __name__ == '__main__':
handler()
Editor is loading...