Commit Graph

21 Commits

Author SHA1 Message Date
samosvalishe 74241de764 break!: выпил tcp-режим туннеля
убраны флаги -mode и -bond: остался только udp-релей для wireguard.
удалены tcpfwd, tcpfwdserver, bondclient, bondserver, bondframe, kcptun,
wire/relay; proxy/common переехал в udprelay/dial.

BREAKING CHANGE: флаги -mode и -bond удалены; конфиги и ссылки freeturn://
с tcp-режимом больше не принимаются.
2026-08-17 00:27:23 +03:00
samosvalishe 5bc164f78d fix(deps): обновить Go 1.26.5 -> 1.26.6 2026-08-14 13:56:43 +03:00
samosvalishe 1f86fda104 refactor: перенос логики сессии в internal/session и обновление mobile-фасада 2026-08-01 03:05:14 +03:00
samosvalishe 9734b37f38 chore(deps): обновить зависимости и версии инструментов
pion/turn 5.0.12, pion/dtls 3.1.5, x/crypto 0.54.0, x/net 0.57.0 + indirect.
govulncheck v1.6.0, goreleaser v2.17.1, task 3.52.0.
2026-07-29 01:59:27 +03:00
samosvalishe 34746e27e0 fix: update deps for vuln pass 2026-07-28 17:41:38 +03:00
samosvalishe ea410a044a fix(deps): обновить Go 1.26.4 -> 1.26.5 2026-07-12 19:10:27 +03:00
samosvalishe 12161aed4a feat(vk): улучшение браузерных отпечатков для captcha
- Добавлена поддержка Safari в -browser.
    Обновлена валидация флага, документация и выбор TLS/HTTP2-профиля для
    chrome, firefox и safari.

  - Улучшено переиспользование сохранённого браузерного профиля.
    Добавлен VK_PROFILE_PATH, сохраняется Accept-Language, определяется семейство
    браузера и mobile-профиль, а TLS-клиент пересобирается под захваченный UA.

  - Обновлена форма запросов VK Smart Captcha.
    Учитываются domain из redirect_uri, id.vk.ru origin/referer, settings_key для
    slider captcha, сохранённый browser_fp и device JSON.

  - Улучшено автоматическое решение captcha.
    Обновлён формат PoW-ответа, добавлена mobile accelerometer телеметрия,
    NetworkInformation отправляется только для Chromium-профилей, а slider solver
    получил обратный скоринг и более естественные cursor traces.

  - Убрано шумное throughput debug-логирование в relay-путях.
    Удалён Stats.LogEvery и его вызовы в UDP/TCP relay, при этом агрегированная
    TrafficStats-статистика сохранена.

  - Обновлены тесты и инфраструктура сборки.
    Добавлены проверки Safari, browser profile storage, captcha telemetry и
    saved-profile fallback; tls-client обновлён до v1.15.1; Android bind в
    Taskfile разделён для Windows и Unix-платформ
2026-06-30 19:16:35 +03:00
Tremendous Stimulus d255bc5f82 feat(ios): добавить iOS framework 2026-06-19 23:56:49 +03:00
samosvalishe 3cb39d40f6 fix: bump go toolchain 2026-06-04 13:05:08 +03:00
samosvalishe 56da9fecdc fix(vkauth): фрагментировать ClientHello на control plane
ТСПУ читает SNI из ClientHello и инжектит delayed RST в TLS до VK
(login.vk.ru и др.). Дробим первый Write через SplitFirstWriteConn,
SNI уезжает во второй сегмент. Вписано в tls-client через
WithProxyDialerFactory без proxyUrl: прямой транспорт, резолвер сохранён.
2026-06-04 12:31:38 +03:00
samosvalishe f12f6e6371 chore: tidy 2026-05-25 00:46:25 +03:00
samosvalishe b4f8cbcec0 fix: ci 2026-05-25 00:42:23 +03:00
samosvalishe 41d877dc64 chore: free turn proxy 2026-05-24 00:01:57 +03:00
samosvalishe 8427887902 chore(deps): обновить Go-зависимости, GitHub Actions и Task до последних версий
- go.mod: x/crypto v0.51.0 → v0.52.0, bump x509roots/fallback; indirect:
  klauspost/compress v1.18.6, x/mod v0.36.0, x/tools v0.45.0
- CI actions: checkout v6.0.2, setup-go v6.4.0, upload-artifact v7.0.1,
  docker/{qemu,buildx,login} v4.x, sbom-action v0.24.0, goreleaser-action
  v7.2.2, release-please-action v5.0.0
- TASK_VERSION v3.40.0 → v3.51.1
2026-05-23 01:49:34 +03:00
samosvalishe f8bc3f54e5 fix(deps): обновить x/net до v0.55.0, toolchain до go1.26.3
govulncheck нашёл 8 уязвимостей (1 в x/net, 7 в stdlib). Обновить x/net
v0.54.0 → v0.55.0 (GO-2026-5026) и запинить toolchain на go1.26.3 ради
stdlib-фиксов для crypto/tls, crypto/x509, net, net/http, net/http/httputil.

govulncheck ./...: 0 уязвимостей.
2026-05-23 00:45:58 +03:00
samosvalishe 8b2e028f99 fix: устранить замечания комплексной проверки
Критичное:
- go.mod: версия 1.25.5→1.25.0 (go mod tidy); Dockerfile: тег 1.25
- release.yml: go-version 1.25.5 → stable
- удалён temp-файл types.go.tmp.18500.1c9f4278a15a
- udprelay/loop.go: defer conn1/conn2.Close() при сбое Dial; лог write-error

Безопасность/код:
- browserprofile: пермиссии 0644→0600
- bondserver: once.Do перед go readLane (ordering fix)
- cmd/server: err= → err:= (shadow fix в AfterFunc)
- vkauth/client: vkDelayRandom ctx-aware (возвращает error)
- captcha/manual: whitelist хостов в /generic_proxy (SSRF mitigation)

Инфра:
- .dockerignore: исключить .git/.github/notes/dist из build context
- docker-compose.yml: env_file .env для OBF_KEY
- entrypoint.sh: позиционные аргументы вместо unquoted vars; валидация host:port

CI:
- ci.yml: исправлен путь go module cache (~/go/pkg/mod); добавлен -race
- .gitignore: добавлены /dist/, *.test, coverage.out, .env, *.tmp
- .golangci.yml: добавлены gosec и staticcheck
- routes-macos.sh: set -eu вместо set -u

Код:
- bondclient/bondserver: errors.Is(err, io.EOF) вместо err != io.EOF
- cmd/client: константа dtlsHandshakeConcurrency для HandshakeSem

Доки:
- quickstart.md: добавлен Intel Mac (darwin-amd64)
- build.md: версия Go, Windows/macOS cross-compile инструкции
- flags.md: уточнено описание -bond
2026-05-21 20:14:45 +03:00
samosvalishe 242862397a chore: переименовать модуль в github.com/samosvalishe/btp; обновить зависимости
- путь модуля: github.com/cacggghp/vk-turn-proxy → github.com/samosvalishe/btp
- директории cmd: cmd/vk-turn-{client,server} → cmd/{client,server}
- зависимости: pion/turn v5.0.4, kcp-go v5.6.72, smux v1.5.57, x/crypto v0.51,
  klauspost/{compress,cpuid,reedsolomon}, x/{net,sys,text,tools,mod,time}
- README, workflows, GLOSSARY обновлены под новые пути
2026-05-20 12:39:26 +03:00
samosvalishe ead97d0089 refactor: удалить поддержку Yandex Telemost и мёртвый код
Удаляет флаг -yandex-link, getYandexCreds и ветку Telemost из основного
потока клиента. Убрана зависимость gorilla/websocket.

Вычищен мёртвый код, всплывший после удаления:
- browserprofile.ApplyHTTP / Random / profileList
- dnsdial DohResolver.LookupIPAddr / queryIPs / parseAnswer / dohCache
  и их тесты (единственный production-вызыватель — путь forwarder)
- устаревшая строка -captcha-solver в README

Публичные DoH-эндпоинты Yandex оставлены (RU-дружественный fallback, не
связан с Telemost).
2026-05-18 17:24:11 +03:00
samosvalishe 4e5690cd04 feat: перенести DoH-резолвер, добавить флаг -dns
Заменяет bschaatsbergen/dnsdialer (только UDP) на внутренний пакет dnsdial.
Добавляет поддержку DNS-over-HTTPS и режим auto (проба UDP/53 → залипающий
fallback на DoH при сбое).

Новый флаг: -dns udp|doh|auto (по умолчанию: auto)
2026-05-11 23:46:27 +03:00
samosvalishe 7a0f98f730 perf: убрать аллокации на горячем пути, TCP DPI-split и KCP FEC
- Атомарный счётчик nonce вместо per-packet rand.Read (syscall getrandom);
  wire-формат не изменён, сервер декодирует без правок
- wrapInto: TX-путь без аллокаций с заранее выделенным буфером;
  wrapPacket оставлен для тестов и control-путей
- Кеш указателя при приёме WG исключает аллокацию addr.String() на пакет
  (быстрый путь — сравнение указателей, медленный — строк)
- Атомики статистики throughput спрятаны за isDebug — снижает трафик
  cache-line по N стримам в production-сборках
- splitFirstWriteConn разбивает первую TCP-запись на байте 6 + задержка
  20ms, ломая STUN magic cookie между сегментами против поверхностного DPI
- VK_TURN_KCP_FEC=data:parity включает Reed-Solomon FEC поверх KCP;
  обе стороны должны совпадать; по умолчанию 0:0 (выключено)
- Исправлен WaitGroup: wg.Add(1) → wg.Add(2) для двух горутин в
  oneDtlsConnection; раньше wg.Wait() возвращался слишком рано
2026-05-11 23:46:27 +03:00
samosvalishe 942d0fff43 feat: initial commit 2025-11-25 11:38:20 +00:00