diff --git a/cmd/verysimple/Makefile_release b/cmd/verysimple/Makefile_release index 2640d10..1b4e5d3 100644 --- a/cmd/verysimple/Makefile_release +++ b/cmd/verysimple/Makefile_release @@ -28,7 +28,7 @@ endif main: linux_amd64 linux_arm64 android_arm64 macos macm win10 win10_arm -extra: linux_arm32_v7 linux_mips64 linux_mips linux_s390x linux_riscv64 win32 +extra: linux_arm32_v5 linux_arm32_v6 linux_arm32_v7 linux_mips64 linux_mips linux_s390x linux_riscv64 win32 # 注意调用参数时,逗号前后不能留空格 # 关于arm版本号 https://github.com/goreleaser/goreleaser/issues/36 @@ -39,6 +39,12 @@ linux_amd64: linux_arm64: $(call compile,linux_arm64,linux,arm64) +linux_arm32_v5: #某些路由器需要 + $(call compile,linux_arm32_v5,linux,arm,,5) + +linux_arm32_v6: + $(call compile,linux_arm32_v6,linux,arm,,6) + linux_arm32_v7: $(call compile,linux_arm32_v7a,linux,arm,,7) diff --git a/examples/ws.client.toml b/examples/ws.client.toml index 089bc9b..d3e2250 100644 --- a/examples/ws.client.toml +++ b/examples/ws.client.toml @@ -11,7 +11,7 @@ host = "127.0.0.1" port = 4434 version = 0 insecure = true -#utls = true # 如果你要用v2ray或者xray做服务端,则要关闭utls,它们不够强大所以它们的websocket无法支持uTls;如果你用verysimple做服务端,则可以打开utls,享受chrome指纹伪装。 +#utls = true advancedLayer = "ws" path = "/ohmygod_verysimple_is_very_simple" #为了防探测这里越长越随机越好 # early = true # 是否开启early data, 注意本作这里要开启的话,就要服务端和客户端 两端都开启。 diff --git a/main.go b/main.go index 5ed087b..4b087af 100644 --- a/main.go +++ b/main.go @@ -1304,15 +1304,9 @@ advLayerHandshakeStep: var edlen int if !hasInnerMux && advClient.IsEarly() && wlc != nil { - edlen = len(iics.firstPayload) - } - // 我们verysimple的架构是 ws握手之后,再进行vless握手 - // 但是如果要传输earlydata的话,则必须要在握手阶段就 预知 vless 的所有数据才行 - // 所以我们需要一种特殊方法 - var wc net.Conn wcs := advClient.(advLayer.SingleClient) diff --git a/tlsLayer/sniff.go b/tlsLayer/sniff.go index 5bd7ee8..393cbe3 100644 --- a/tlsLayer/sniff.go +++ b/tlsLayer/sniff.go @@ -594,9 +594,6 @@ func (dw *DetectLazyWriter) SimpleWrite(p []byte) (n int, err error) { return } -//用于通知 “我们要开始tls数据部分啦” 的 “特殊指令”,该指令会被tls加密发送,因此不用担心暴露 -//var SpecialCommand = []byte{1, 2, 3, 4} //后来决定直接使用uuid作为特殊指令。也是加密传输的,所以安全性一样。和普通vless+tls一样,最怕的是中间人攻击。只要自己证书申请好就行。 - //发现,数据基本就是 23 3 3, 22 3 3,22 3 1 , 20 3 3 //一个首包不为23 3 3 的包往往会出现在 1184长度的包的后面,而且一般 1184长度的包 的开头是 22 3 3 0 122,且总是在Write里面发生. //所以可以直接推测这个就是握手包; 实测 22 3 3 0 122 开头的,无一例外都是 1184长度,且后面接多个 开头任意的 Write diff --git a/tlsLayer/sniff_hello.go b/tlsLayer/sniff_hello.go index ef158b4..8be6fba 100644 --- a/tlsLayer/sniff_hello.go +++ b/tlsLayer/sniff_hello.go @@ -80,6 +80,8 @@ func (cd *ComSniff) sniff_commonHelloPre(pAfter []byte) []byte { //可参考 https://halfrost.com/https_tls1-3_handshake/ 。 // 具体见最上面的注释,以及rfc。 //解析还可以参考 https://blog.csdn.net/weixin_36139431/article/details/103541874 +// +//会按情况在返回前 设置cd.DefinitelyNotTLS,cd.handshakeFailReason,cd.CantBeTLS13,cd.handshakeVer,cd.helloPacketPass func (cd *ComSniff) sniff_hello(pAfter []byte, isclienthello bool, onlyForSni bool) { pAfterLegacy_compression_methods := cd.sniff_commonHelloPre(pAfter) diff --git a/tlsLayer/tlsLayer.go b/tlsLayer/tlsLayer.go index 956ed06..c774cbe 100644 --- a/tlsLayer/tlsLayer.go +++ b/tlsLayer/tlsLayer.go @@ -1,5 +1,7 @@ /* Package tlsLayer provides facilities for tls, including uTls, sniffing and random certificate. + +Sniffing can be a part of Tls Lazy Encrypt tech. */ package tlsLayer