This commit is contained in:
Pin
2024-03-07 21:03:27 -05:00
parent 855c1a075f
commit 995a2bd30a
13 changed files with 360 additions and 68 deletions

View File

@@ -49,3 +49,17 @@ Saprus Type: 0x88 0x88
| Payload |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```
## hold
Saprus Type: 0x00 0x3C
```
0 1 2 3 4
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dest | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| Payload |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```

View File

@@ -1,18 +1,15 @@
package main
import (
"encoding/base64"
"fmt"
"io/ioutil"
"log"
"net"
"strings"
"saprusserver/utils"
)
func welcomeMessage() {
msg :=`Welcome to --
msg :=`
██████ ▄▄▄ ██▓███ ██▀███ █ ██ ██████
▒██ ▒ ▒████▄ ▓██░ ██▒▓██ ▒ ██▒ ██ ▓██▒▒██ ▒
░ ▓██▄ ▒██ ▀█▄ ▓██░ ██▓▒▓██ ░▄█ ▒▓██ ▒██░░ ▓██▄
@@ -36,15 +33,9 @@ func checkError(err error) {
func main() {
welcomeMessage()
log.Printf("Starting server\n")
con := utils.SocketCall{}
serv, err := net.ListenPacket("udp4", ":8888")
serverIP := "aaa"
msg := "clientapi: " + serverIP
fileBuf, _ := ioutil.ReadFile("./script.sh")
msg = string(fileBuf)
b64Msg := base64.StdEncoding.EncodeToString([]byte(msg))
log.Println("Starting server")
serv, err := net.ListenPacket("udp4", ":8888")
checkError(err)
defer serv.Close()
@@ -53,17 +44,8 @@ func main() {
for {
_, addr, err := serv.ReadFrom(buff)
checkError(err)
remoteAddr := strings.Split(addr.String(), ":")
log.Printf("Received data %s\n", remoteAddr)
checkError(err)
con.SendData(b64Msg)
log.Printf("Sending data to %s\n", addr)
go utils.ProcessRequests(buff, addr)
}
}

View File

@@ -3,6 +3,14 @@ package structs
import (
)
type UDPPackage struct {
SourcePort [2]byte
Destport [2]byte
Length [2]byte
Checksum [2]byte
}
type SaprusHeaderFrame struct {
PacketType [2]byte
Length [2]byte
@@ -16,4 +24,3 @@ func (c SaprusHeaderFrame) Bytes() []byte {
data = append(data, c.Payload...)
return data
}

View File

@@ -1,6 +1,44 @@
package utils
import (
"encoding/base64"
"log"
"net"
"strings"
"saprusserver/structs"
)
func (c *SocketCall) GatherSaprusHeader(buf []byte) structs.SaprusHeaderFrame {
data := structs.SaprusHeaderFrame {
PacketType: [2]byte{buf[0], buf[1]},
Length: [2]byte{buf[2], buf[3]},
}
return data
}
func ProcessRequests(buf []byte, addr net.Addr) {
c := SocketCall{}
msg := "hello world"
b64Msg := base64.StdEncoding.EncodeToString([]byte(msg))
saprusHeader := c.GatherSaprusHeader(buf)
remoteAddr := strings.Split(addr.String(), ":")
switch {
case strings.Contains(string(buf), "here"):
log.Printf("Sending Data to %s\n", remoteAddr)
c.SendData(b64Msg)
case saprusHeader.PacketType == [2]byte{0x88, 0x88}:
log.Printf("New find:: %s\n", remoteAddr)
c.SendData(base64.StdEncoding.EncodeToString([]byte("hello\n")))
case saprusHeader.PacketType == [2]byte{0x00, 0x3C}:
log.Printf("Broadcast message::%s\n", remoteAddr)
default:
log.Printf("Packet type not found::%x\n", string(saprusHeader.PacketType[:]))
}
return
}