ShadowX is a secure file transfer application that allows you to transfer files between a client and a server using Pre-Shared Key (PSK) authentication and TLS encryption. It ensures secure and reliable file transfers over a network.
- Secure File Transfer: Uses TLS encryption to protect data in transit.
- Pre-Shared Key (PSK) Authentication: Ensures only authorized clients can connect to the server.
- Directory Support: Can send entire directories recursively.
- Self-Signed Certificates: Automatically generates self-signed certificates for TLS encryption.
- Cross-Platform: Works on any platform that supports Go.
- Go installed on your system.
-
Clone the repository:
git clone https://github.com/bhanunamikaze/ShadowX.git cd ShadowX
-
Build the application:
go build -ldflags "-s -w" -o ShadowX
-
Run the application:
- For server mode:
./ShadowX -i 0.0.0.0:8080 -p mysecretkey
- For client mode:
./ShadowX -i 192.168.1.5:8080 -p mysecretkey -f myfile.txt
- For server mode:
Start the server by specifying the IP address, port, and pre-shared key (PSK):
./ShadowX -i 0.0.0.0:8080 -p mysecretkey
- The server will listen for incoming connections on the specified IP and port.
- It will automatically generate a self-signed certificate if one does not exist.
Send files or directories to the server by specifying the server's IP address, port, PSK, and file/directory path:
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f myfile.txt
- To send a directory:
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f mydir/
Argument | Description | Example |
---|---|---|
-i |
IP address and port to bind/listen | -i 0.0.0.0:8080 |
-p |
Pre-Shared Key (PSK) for authentication | -p mysecretkey |
-f |
File or directory to send (client mode only) | -f myfile.txt or -f mydir/ |
-
Start the Server:
./ShadowX -i 0.0.0.0:8080 -p mysecretkey
-
Send a File from the Client:
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f myfile.txt
-
Send a Directory from the Client:
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f mydir/
This project is licensed under the MIT License. See the LICENSE file for details.