From c1fe4171cc710c81c2c3ed8cabb71c8b0efbcfee Mon Sep 17 00:00:00 2001 From: Hiddify Date: Mon, 29 Jan 2024 14:21:42 +0100 Subject: [PATCH] fix: bug in padding --- cmd/cmd_config.go | 2 ++ config/config.go | 12 ++++++------ config/option.go | 2 +- config/outbound.go | 25 ++++++++++++++++--------- go.mod | 2 +- go.sum | 4 ++-- 6 files changed, 28 insertions(+), 19 deletions(-) diff --git a/cmd/cmd_config.go b/cmd/cmd_config.go index f59d858..4579198 100644 --- a/cmd/cmd_config.go +++ b/cmd/cmd_config.go @@ -80,6 +80,8 @@ func build(path string, optionsPath string) error { return err } fmt.Println("result successfully written to ", outputPath) + libbox.Setup(outputPath, workingDir, workingDir, true) + instance, err := NewService(*patchedOptions) } else { os.Stdout.WriteString(config) } diff --git a/config/config.go b/config/config.go index b7b2049..3d9b7e4 100644 --- a/config/config.go +++ b/config/config.go @@ -54,16 +54,16 @@ func BuildConfig(configOpt ConfigOptions, input option.Options) (*option.Options ClashAPI: &option.ClashAPIOptions{ ExternalController: fmt.Sprintf("%s:%d", "127.0.0.1", configOpt.ClashApiPort), }, - CacheFile: &option.CacheFileOptions{ - Enabled: true, - Path: "clash.db", - }, + // CacheFile: &option.CacheFileOptions{ + // Enabled: true, + // Path: "clash.db", + // }, } } options.Log = &option.LogOptions{ - Level: configOpt.LogLevel, - Output: "box.log", + Level: configOpt.LogLevel, + // Output: "box.log", Disabled: false, Timestamp: true, DisableColor: true, diff --git a/config/option.go b/config/option.go index 5826c66..470d55b 100644 --- a/config/option.go +++ b/config/option.go @@ -98,7 +98,7 @@ func DefaultConfigOptions() *ConfigOptions { FragmentSleep: "50-200", EnableMixedSNICase: false, EnablePadding: false, - PaddingSize: "100-200", + PaddingSize: "1200-1500", }, } } diff --git a/config/outbound.go b/config/outbound.go index 1037ffa..ee9869b 100644 --- a/config/outbound.go +++ b/config/outbound.go @@ -27,6 +27,7 @@ func patchOutboundMux(base option.Outbound, configOpt ConfigOptions, obj outboun } func patchOutboundTLSTricks(base option.Outbound, configOpt ConfigOptions, obj outboundMap) outboundMap { + if base.Type == C.TypeSelector || base.Type == C.TypeURLTest || base.Type == C.TypeBlock || base.Type == C.TypeDNS { return obj } @@ -54,25 +55,31 @@ func patchOutboundTLSTricks(base option.Outbound, configOpt ConfigOptions, obj o if tls == nil || !tls.Enabled || transport == nil { return obj } + if transport.Type != C.V2RayTransportTypeWebsocket && transport.Type != C.V2RayTransportTypeGRPC { return obj } - if tls, ok := obj["tls"].(map[string]interface{}); ok { - tlsTricks := option.TLSTricksOptions{ - MixedCaseSNI: configOpt.TLSTricks.EnableMixedSNICase, - } + if outtls, ok := obj["tls"].(map[string]interface{}); ok { + tlsTricks := tls.TLSTricks + tlsTricks.MixedCaseSNI = tlsTricks.MixedCaseSNI || configOpt.TLSTricks.EnableMixedSNICase if configOpt.TLSTricks.EnablePadding { tlsTricks.PaddingMode = "random" tlsTricks.PaddingSize = configOpt.TLSTricks.PaddingSize + fmt.Printf("--------------------%+v----%+v", tlsTricks.PaddingSize, configOpt) + outtls["utls"] = map[string]interface{}{ + "enabled": true, + "fingerprint": "custom", + } } - if tlsTricks.MixedCaseSNI || tlsTricks.PaddingMode != "" { - tls["tls_tricks"] = tlsTricks - // } else { - // tls["tls_tricks"] = nil - } + outtls["tls_tricks"] = tlsTricks + // if tlsTricks.MixedCaseSNI || tlsTricks.PaddingMode != "" { + // // } else { + // // tls["tls_tricks"] = nil + // } + fmt.Printf("-------%+v------------- ", tlsTricks) } return obj } diff --git a/go.mod b/go.mod index f12cf37..992f001 100644 --- a/go.mod +++ b/go.mod @@ -102,6 +102,6 @@ require ( lukechampine.com/blake3 v1.2.1 // indirect ) -replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.7.9-0.20240126132136-307f29d4ab05 +replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.7.9-0.20240127031116-46118867804b replace github.com/sagernet/wireguard-go => github.com/hiddify/wireguard-go v0.0.0-20240125143346-481d18d77fe1 diff --git a/go.sum b/go.sum index db42817..538a464 100644 --- a/go.sum +++ b/go.sum @@ -49,8 +49,8 @@ github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a h1:fEBsGL/sjAuJrgah5X github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hiddify/hiddify-sing-box v1.7.9-0.20240126132136-307f29d4ab05 h1:Lu1VgoEDqQRMsEENwDVs+SMK16hLTie6DI+P8txZLMM= -github.com/hiddify/hiddify-sing-box v1.7.9-0.20240126132136-307f29d4ab05/go.mod h1:B74zKdMcH3ZEmCi2OUqJTvEXCNtNQjivUEQ20y/5XQM= +github.com/hiddify/hiddify-sing-box v1.7.9-0.20240127031116-46118867804b h1:5w6woa/tQkXB9kpuIINZTck6pt8u0/4T+RqNOX0e+aI= +github.com/hiddify/hiddify-sing-box v1.7.9-0.20240127031116-46118867804b/go.mod h1:B74zKdMcH3ZEmCi2OUqJTvEXCNtNQjivUEQ20y/5XQM= github.com/hiddify/ray2sing v0.0.0-20240127015415-b0b85dcbf102 h1:4vKmPE8AyvsBYuZmjGkPnsju8ZzVxEjC9I96uqxX5+o= github.com/hiddify/ray2sing v0.0.0-20240127015415-b0b85dcbf102/go.mod h1:zYKnf7EoPqrk7JOMO9BApTXxfH0sva8AKfoFywN7uuA= github.com/hiddify/wireguard-go v0.0.0-20240125143346-481d18d77fe1 h1:neOb+wzHbWLNZ2sHFEV4+GTuqORO7/MndQLFW8FjUY8=