@@ -3,6 +3,7 @@ package internal
33
44import (
55 "bufio"
6+ "bytes"
67 "context"
78 "net"
89 "net/url"
@@ -78,6 +79,14 @@ func getEnvAsDuration(name string, defaultValue time.Duration) time.Duration {
7879 return defaultValue
7980}
8081
82+ // xor 对数据进行异或处理
83+ func xor (data []byte ) []byte {
84+ for i := range data {
85+ data [i ] ^= byte (128 )
86+ }
87+ return data
88+ }
89+
8190// getAddress 解析和设置地址信息
8291func (c * Common ) getAddress (parsedURL * url.URL ) {
8392 // 解析隧道地址
@@ -274,7 +283,7 @@ func (c *Common) commonQueue() error {
274283 if err != nil {
275284 return err
276285 }
277- signal := strings . TrimSpace ( string (rawSignal ))
286+ signal := string (xor ( bytes . TrimSuffix ( rawSignal , [] byte { '\n' }) ))
278287
279288 // 将信号发送到通道
280289 select {
@@ -301,7 +310,7 @@ func (c *Common) healthCheck() error {
301310 // 连接池健康度检查
302311 if c .tunnelPool .ErrorCount () > c .tunnelPool .Active ()/ 2 {
303312 // 发送刷新信号到对端
304- _ , err := c .tunnelTCPConn .Write ([]byte (flushURL .String () + " \n " ))
313+ _ , err := c .tunnelTCPConn .Write (append ( xor ( []byte (flushURL .String ())), '\n' ))
305314 if err != nil {
306315 c .mu .Unlock ()
307316 return err
@@ -390,7 +399,7 @@ func (c *Common) commonTCPLoop() {
390399 }
391400
392401 c .mu .Lock ()
393- _ , err = c .tunnelTCPConn .Write ([]byte (launchURL .String () + " \n " ))
402+ _ , err = c .tunnelTCPConn .Write (append ( xor ( []byte (launchURL .String ())), '\n' ))
394403 c .mu .Unlock ()
395404
396405 if err != nil {
@@ -457,7 +466,7 @@ func (c *Common) commonUDPLoop() {
457466 }
458467
459468 c .mu .Lock ()
460- _ , err = c .tunnelTCPConn .Write ([]byte (launchURL .String () + " \n " ))
469+ _ , err = c .tunnelTCPConn .Write (append ( xor ( []byte (launchURL .String ())), '\n' ))
461470 c .mu .Unlock ()
462471
463472 if err != nil {
0 commit comments