Three checkpoints over 17 days confirmed a stable ~20% Sentinel rejection rate on the CLI's own requests, despite running from residential IPs specifically to avoid ASN-based blocking. That persistence points at TLS ClientHello fingerprinting as an additional signal: Go's stdlib crypto/tls produces a handshake that looks nothing like a real browser, independent of IP or headers. Swaps the CLI's HTTP transport (session setup, SKU lookup, download link fetch, eval link resolution) from net/http to github.com/bogdanfinn/tls-client, which wraps utls with a maintained Chrome browser profile (TLS + HTTP2 fingerprint together, not just TLS -- a browser-consistent one without the other is its own tell). Bumped msUA's claimed Chrome version to 133 to match the chosen profile, since a mismatched UA vs. TLS fingerprint is itself detectable. The custom simpleCookieJar is gone -- tls-client provides its own cookie jar. fetchEvalLinks got the same treatment for consistency, even though the Eval Center path isn't currently blocked. Verified: go build/vet/test all pass, and a live end-to-end run (msdl --id 3262 --lang English) returned a real signed download link and successfully contributed it back to the shared cache. That proves the flow still works functionally through the new client -- it does NOT prove the fingerprint theory, since the old client already succeeded ~80% of the time. The real test is watching the Sentinel- rejection-rate telemetry over a comparable multi-day window after this ships. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
793 B
Modula-2
24 lines
793 B
Modula-2
module github.com/starkSV/msdl-cli
|
|
|
|
go 1.24.1
|
|
|
|
require (
|
|
github.com/bogdanfinn/fhttp v0.6.8
|
|
github.com/bogdanfinn/tls-client v1.15.1
|
|
)
|
|
|
|
require (
|
|
github.com/andybalholm/brotli v1.2.0 // indirect
|
|
github.com/bdandy/go-errors v1.2.2 // indirect
|
|
github.com/bdandy/go-socks4 v1.2.3 // indirect
|
|
github.com/bogdanfinn/quic-go-utls v1.0.9-utls // indirect
|
|
github.com/bogdanfinn/utls v1.7.7-barnius // indirect
|
|
github.com/bogdanfinn/websocket v1.5.5-barnius // indirect
|
|
github.com/klauspost/compress v1.18.2 // indirect
|
|
github.com/quic-go/qpack v0.6.0 // indirect
|
|
github.com/tam7t/hpkp v0.0.0-20160821193359-2b70b4024ed5 // indirect
|
|
golang.org/x/crypto v0.46.0 // indirect
|
|
golang.org/x/net v0.48.0 // indirect
|
|
golang.org/x/sys v0.39.0 // indirect
|
|
golang.org/x/text v0.32.0 // indirect
|
|
)
|