Untitled
unknown
python
2 years ago
2.9 kB
6
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...