Mult Port + TCP Calibration (SSH DEAD)

This commit is contained in:
2026-08-17 17:08:57 -03:00
parent 7ea221a99c
commit b997294607
58 changed files with 6033 additions and 497 deletions
+66
View File
@@ -0,0 +1,66 @@
package main
import (
"bufio"
"bytes"
"encoding/binary"
"testing"
)
func TestUDPGWFrameRoundTripShape(t *testing.T) {
ip := [4]byte{1, 2, 3, 4}
data := []byte("dragon")
frame := buildUDPGWRequest(7, 0, ip, 5353, data)
payload, err := readUDPGWFrame(bufio.NewReader(bytes.NewReader(frame)))
if err != nil {
t.Fatal(err)
}
if got := binary.BigEndian.Uint16(payload[0:2]); got != 7 {
t.Fatalf("conn id=%d", got)
}
if !bytes.Equal(payload[3:7], ip[:]) {
t.Fatalf("ip=%v", payload[3:7])
}
if got := binary.BigEndian.Uint16(payload[7:9]); got != 5353 {
t.Fatalf("port=%d", got)
}
if !bytes.Equal(payload[9:], data) {
t.Fatalf("data=%q", payload[9:])
}
}
func TestParseSOCKSUDPDatagramIPv4(t *testing.T) {
packet := []byte{0, 0, 0, socksAtypIPv4, 8, 8, 8, 8, 0, 53, 1, 2, 3}
ip, port, data, err := parseSOCKSUDPDatagram(packet)
if err != nil {
t.Fatal(err)
}
if ip != [4]byte{8, 8, 8, 8} {
t.Fatalf("ip=%v", ip)
}
if port != 53 {
t.Fatalf("port=%d", port)
}
if !bytes.Equal(data, []byte{1, 2, 3}) {
t.Fatalf("data=%v", data)
}
}
func TestParseSOCKSUDPDatagramRejectsDomainToAvoidDNSLeak(t *testing.T) {
packet := []byte{0, 0, 0, socksAtypDomain, 7, 'e', 'x', 'a', 'm', 'p', 'l', 'e', 0, 53, 1}
_, _, _, err := parseSOCKSUDPDatagram(packet)
if err == nil {
t.Fatal("expected domain-form UDP destination to be rejected")
}
}
func TestSOCKSReadRequestAllowsZeroPortForUDPAssociate(t *testing.T) {
request := []byte{5, socksCmdUDPAssociate, 0, socksAtypIPv4, 0, 0, 0, 0, 0, 0}
cmd, host, port, err := socksReadRequest(bufio.NewReader(bytes.NewReader(request)))
if err != nil {
t.Fatal(err)
}
if cmd != socksCmdUDPAssociate || host != "0.0.0.0" || port != 0 {
t.Fatalf("got cmd=%d host=%q port=%d", cmd, host, port)
}
}