Spaces:
Paused
Paused
| import base64 | |
| import json | |
| import random | |
| import time | |
| from typing import Any, Dict, Optional | |
| class OrderedMap: | |
| def __init__(self) -> None: | |
| self.keys = [] | |
| self.values = {} | |
| def add(self, key: str, value: Any) -> None: | |
| if key not in self.values: | |
| self.keys.append(key) | |
| self.values[key] = value | |
| def _turnstile_to_str(value: Any) -> str: | |
| if value is None: | |
| return "undefined" | |
| if isinstance(value, float): | |
| return str(value) | |
| if isinstance(value, str): | |
| special = { | |
| "window.Math": "[object Math]", | |
| "window.Reflect": "[object Reflect]", | |
| "window.performance": "[object Performance]", | |
| "window.localStorage": "[object Storage]", | |
| "window.Object": "function Object() { [native code] }", | |
| "window.Reflect.set": "function set() { [native code] }", | |
| "window.performance.now": "function () { [native code] }", | |
| "window.Object.create": "function create() { [native code] }", | |
| "window.Object.keys": "function keys() { [native code] }", | |
| "window.Math.random": "function random() { [native code] }", | |
| } | |
| return special.get(value, value) | |
| if isinstance(value, list) and all(isinstance(item, str) for item in value): | |
| return ",".join(value) | |
| return str(value) | |
| def _xor_string(text: str, key: str) -> str: | |
| if not key: | |
| return text | |
| return "".join(chr(ord(ch) ^ ord(key[i % len(key)])) for i, ch in enumerate(text)) | |
| def solve_turnstile_token(dx: str, p: str) -> Optional[str]: | |
| try: | |
| decoded = base64.b64decode(dx).decode() | |
| token_list = json.loads(_xor_string(decoded, p)) | |
| except Exception: | |
| return None | |
| process_map: Dict[Any, Any] = {} | |
| start_time = time.time() | |
| result = "" | |
| def func_1(e: float, t: float) -> None: | |
| process_map[e] = _xor_string(_turnstile_to_str(process_map[e]), _turnstile_to_str(process_map[t])) | |
| def func_2(e: float, t: Any) -> None: | |
| process_map[e] = t | |
| def func_3(e: str) -> None: | |
| nonlocal result | |
| result = base64.b64encode(e.encode()).decode() | |
| def func_5(e: float, t: float) -> None: | |
| current = process_map[e] | |
| incoming = process_map[t] | |
| if isinstance(current, (list, tuple)): | |
| process_map[e] = list(current) + [incoming] | |
| return | |
| if isinstance(current, (str, float)) or isinstance(incoming, (str, float)): | |
| process_map[e] = _turnstile_to_str(current) + _turnstile_to_str(incoming) | |
| return | |
| process_map[e] = "NaN" | |
| def func_6(e: float, t: float, n: float) -> None: | |
| tv = process_map[t] | |
| nv = process_map[n] | |
| if isinstance(tv, str) and isinstance(nv, str): | |
| value = f"{tv}.{nv}" | |
| process_map[e] = "https://chatgpt.com/" if value == "window.document.location" else value | |
| def func_7(e: float, *args: float) -> None: | |
| target = process_map[e] | |
| values = [process_map[arg] for arg in args] | |
| if isinstance(target, str) and target == "window.Reflect.set": | |
| obj, key_name, val = values | |
| obj.add(str(key_name), val) | |
| elif callable(target): | |
| target(*values) | |
| def func_8(e: float, t: float) -> None: | |
| process_map[e] = process_map[t] | |
| def func_14(e: float, t: float) -> None: | |
| process_map[e] = json.loads(process_map[t]) | |
| def func_15(e: float, t: float) -> None: | |
| process_map[e] = json.dumps(process_map[t]) | |
| def func_17(e: float, t: float, *args: float) -> None: | |
| call_args = [process_map[arg] for arg in args] | |
| target = process_map[t] | |
| if target == "window.performance.now": | |
| elapsed_ns = time.time_ns() - int(start_time * 1e9) | |
| process_map[e] = (elapsed_ns + random.random()) / 1e6 | |
| elif target == "window.Object.create": | |
| process_map[e] = OrderedMap() | |
| elif target == "window.Object.keys": | |
| if call_args and call_args[0] == "window.localStorage": | |
| process_map[e] = [ | |
| "STATSIG_LOCAL_STORAGE_INTERNAL_STORE_V4", | |
| "STATSIG_LOCAL_STORAGE_STABLE_ID", | |
| "client-correlated-secret", | |
| "oai/apps/capExpiresAt", | |
| "oai-did", | |
| "STATSIG_LOCAL_STORAGE_LOGGING_REQUEST", | |
| "UiState.isNavigationCollapsed.1", | |
| ] | |
| elif target == "window.Math.random": | |
| process_map[e] = random.random() | |
| elif callable(target): | |
| process_map[e] = target(*call_args) | |
| def func_18(e: float) -> None: | |
| process_map[e] = base64.b64decode(_turnstile_to_str(process_map[e])).decode() | |
| def func_19(e: float) -> None: | |
| process_map[e] = base64.b64encode(_turnstile_to_str(process_map[e]).encode()).decode() | |
| def func_20(e: float, t: float, n: float, *args: float) -> None: | |
| if process_map[e] == process_map[t]: | |
| target = process_map[n] | |
| if callable(target): | |
| target(*[process_map[arg] for arg in args]) | |
| def func_21(*_: Any) -> None: | |
| return | |
| def func_23(e: float, t: float, *args: float) -> None: | |
| if process_map[e] is not None and callable(process_map[t]): | |
| process_map[t](*args) | |
| def func_24(e: float, t: float, n: float) -> None: | |
| tv = process_map[t] | |
| nv = process_map[n] | |
| if isinstance(tv, str) and isinstance(nv, str): | |
| process_map[e] = f"{tv}.{nv}" | |
| process_map.update({ | |
| 1: func_1, | |
| 2: func_2, | |
| 3: func_3, | |
| 5: func_5, | |
| 6: func_6, | |
| 7: func_7, | |
| 8: func_8, | |
| 9: token_list, | |
| 10: "window", | |
| 14: func_14, | |
| 15: func_15, | |
| 16: p, | |
| 17: func_17, | |
| 18: func_18, | |
| 19: func_19, | |
| 20: func_20, | |
| 21: func_21, | |
| 23: func_23, | |
| 24: func_24, | |
| }) | |
| for token in token_list: | |
| try: | |
| fn = process_map.get(token[0]) | |
| if callable(fn): | |
| fn(*token[1:]) | |
| except Exception: | |
| continue | |
| return result or None | |