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[-] Ни один ключ не сработал. Пробуем другие значения...")