Something Awesome: Protocol Specification
Contents
Connection
Connection to Host
- Client sends
hello({id:...,key:...})
to host- If bad auth, return
r_hello({status:false,attempts:...})
- Establish connection, return
r_hello({status:true,udp_port:...})
- Client sends
hello({id:...})
(UDP) to host - Host registers client’s address
- If bad auth, return
- Every interval, client sends
keepAlive
(UDP) to host - Client sends command to host
- Host returns command
Relay
The relay server does not exchange party connection details unless a connection is authorised.
The relay server only keeps a record of the host’s details in memory.
- Client sends
hello
to relay- If no ID, return
r_hello({status:false})
- Relay sends
hello
to host - If bad auth, return
r_hello({status:false})
- Exchange connection details
- If no ID, return
- Every interval, host sends
poll
to relay - Every interval, client sends
list
to relay- Relay returns
r_list
- Relay returns
Messages
Connection Messages
keepalive
Description: A periodic “Keep Alive” message over UDP. No reply
Source: Client
Destination: Hosthello
Description: Connect and authenticate to a relay / host
Data:id
,key
Source: Client / Relay
Destination: Relay / Hostlist
Description: Request the computers connected to the relay
Source: Client
Destination: Relaypoll
Description: Broadcast presence to a relay server / client (UDP). No reply
Data: { Public IP, Computer Name, MAC Address, RAM, CPU }
Source: Host
Destination: Relay
Control Messages
display_setup
Description: Configuration for the display streamscreenshot
Description: Take a screenshot of the host’s displaycontrol_setup
Description: Configuration for keyboard/mouse inputcontrol
Description: Input data for keyboard/mouse inputkeylog_setup
Description: Configuration for keyboard loggingwebcam_setup
Description: Configuration for webcam controlrestart
Description: Reboot the host machineshutdown
Description: Shutdown the host machinelock
Description: Lock the host machine
Data Messages (Response)
r_hello
Description: Hello response
Data:status
,attempts
Source: Host / Relay
Destination: Relay / Clientr_list
Description: Returns a list of computers connected to the relay
Data: Object of computers Source: Relay
Destination: Clientr_display
- Display stream datar_screenshot
- Screenshot datar_keylog
- Keylog data