Загрузка данных


import socket
import json
import re

HOST = 'tasks.duckerz.ru'
PORT = 30009

def test_key(key_name):
    """Пробует отправить JSON с заданным ключом."""
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(5.0)
    try:
        s.connect((HOST, PORT))
        # Читаем до "Send to Bob:"
        data = b""
        while b"Send to Bob:" not in data:
            chunk = s.recv(4096)
            if not chunk:
                break
            data += chunk
        
        text = data.decode('utf-8', errors='ignore')
        match = re.search(r'\{.*\}', text)
        if not match:
            return None
        
        alice = json.loads(match.group())
        A_hex = alice['A']  # Оставляем как строку с 0x
        
        # Формируем JSON
        payload = json.dumps({key_name: A_hex})
        s.sendall((payload + "\n").encode())
        
        # Читаем ответ
        resp = s.recv(4096).decode('utf-8', errors='ignore').strip()
        if resp and "Connection terminated" not in resp:
            print(f"[+] УСПЕХ с ключом '{key_name}'!")
            print(f"    Ответ: {resp}")
            return resp
    except Exception as e:
        pass
    finally:
        s.close()
    return None

# Перебираем ключи
keys_to_try = [
    'A', 'answer', 'result', 'response', 'msg', 'message', 
    'data', 'value', 'number', 'num', 'output', 'out',
    'solve', 'solution', 'res', 'ans', 'C', 'B', 'x', 'y', 'z'
]

print("[*] Начинаем перебор ключей JSON...")
for key in keys_to_try:
    print(f"[*] Пробуем ключ: '{key}'")
    resp = test_key(key)
    if resp:
        print(f"\n[!] НАЙДЕН РАБОЧИЙ КЛЮЧ: '{key}'")
        print(f"[!] Ответ: {resp}")
        break
else:
    print("\n[-] Ни один ключ не сработал. Пробуем другие значения...")