feat!: universal redesign — drop Minecraft stack, single-crate architecture
- remove Java plugins (velocity/paper), dashboard, all MC-specific code
(handshake, death_code, varint, hostname-HMAC); available in history pre-v0.2
- merge crates/* into one package with src/bin/{rampart,rampart-manager,rampart-cli}
- ProtocolHandler trait + registry (no implementations yet), universal PoW kept
- XDP: universal L3/L4 filter (xdp/core/) + pluggable hook API (xdp/hooks/),
fix IPv6 saddr bug; clang build verified
- docs: bilingual knowledge base (docs/kb/: attacks x4, defense-levels,
practice x3), rewrite README/architecture for universal concept
- TODO.md v4.0: <=300-line module limit, competitor benchmark section (ref/)
- deploy/CI/docs cleanup: no MC references, new binary names
cargo build/clippy(-D warnings)/test green (55 tests)
This commit is contained in:
parent
0b53ed720b
commit
15f474486a
179 changed files with 5044 additions and 11519 deletions
|
|
@ -1,36 +1,11 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Легитимный Minecraft клиент: подключается ВО ВРЕМЯ DDoS и меряет RTT."""
|
||||
"""Generic TCP-клиент: подключается ВО ВРЕМЯ DDoS и меряет RTT."""
|
||||
|
||||
import argparse
|
||||
import socket
|
||||
import struct
|
||||
import time
|
||||
|
||||
|
||||
def pack_varint(value):
|
||||
buf = []
|
||||
while True:
|
||||
byte = value & 0x7F
|
||||
value >>= 7
|
||||
if value:
|
||||
byte |= 0x80
|
||||
buf.append(byte)
|
||||
if not value:
|
||||
break
|
||||
return bytes(buf)
|
||||
|
||||
|
||||
def make_handshake(host="play.example.com", port=25565, state=2):
|
||||
pkt = bytearray()
|
||||
pkt.extend(pack_varint(0))
|
||||
pkt.extend(pack_varint(767))
|
||||
pkt.extend(pack_varint(len(host)))
|
||||
pkt.extend(host.encode())
|
||||
pkt.extend(struct.pack(">H", port))
|
||||
pkt.extend(pack_varint(state))
|
||||
return pack_varint(len(pkt)) + bytes(pkt)
|
||||
|
||||
|
||||
def main():
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument("--target", default="127.0.0.1")
|
||||
|
|
@ -47,7 +22,7 @@ def main():
|
|||
try:
|
||||
s = socket.create_connection((args.target, args.port), timeout=args.timeout)
|
||||
s.settimeout(args.timeout)
|
||||
s.sendall(make_handshake())
|
||||
# Ждём первый байт от edge (PoW challenge / upstream-ответ).
|
||||
resp = s.recv(1)
|
||||
rtt = (time.time() - t0) * 1000
|
||||
ok = len(resp) > 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue