Whisper is a real-time data transmission system designed to capture, enrich, and securely forward data to a designated server over HTTP or TCP. It efficiently handles multiple concurrent connections, ensures data integrity, and features an optional self-destruction mechanism for emergency scenarios.
- Real-time Data Processing: Listens for raw TCP connections and processes incoming messages.
- Data Enrichment: Adds metadata such as timestamp, client IP, and MD5 hash.
- Configurable Transmission: Supports HTTP & TCP transmission, configurable via
whisper-config.yaml. - Automatic Retry Mechanism: Retries failed HTTP transmissions up to 3 times.
- Self-Destruction Mechanism: Can be triggered remotely to erase all traces of Whisper.
- Automatic Transmission of Unsent Messages: Ensures no data is lost before shutdown.
- Docker Support: Deployable in a containerized environment.
- Java 17+
- Maven
- Docker (optional for containerized deployment)
git clone https://github.com/your-repo/whisper.git
cd whisperEdit whisper-config.yaml to specify ports, transmission mode, and security settings as mentioned in its notes.
mvn clean packagejava -jar target/whisper.jarYou can use nc (Netcat) to send data:
echo "Hello Whisper" | nc 127.0.0.1 9090Use curl to send a message:
curl -X POST "https://webhook.site/your-custom-url" --data "Hello Whisper"While the only_authorized_ip in the yaml file says "Yes" only messages from the authorized IP will trigger self-destruction:
echo "DESTROY_WHISPER_NOW" | nc 127.0.0.1 9090In case only_authorized_ip is set on "No", you can trigger the self-destruction from any ip.
Expected Output:
SELF-DESTRUCT SEQUENCE INITIATED
Whisper is self-destructing...
Sending unsent messages before destruction...
Whisper has self-destructed successfully.For testing, webhook.site was used as the HTTP server to capture messages.
- Go to webhook.site and copy your custom URL.
- Set it in
whisper-config.yamlunderhttp_url. - Run Whisper and send test data.
- View the received messages in Webhook Site's interface.