A cross-platform GUI application built with Rust for network payload injection. Features an intuitive interface for configuring target connections and managing payload files.
- Intuitive GUI: Clean, modern interface built with egui
- Cross-Platform: Native support for Linux and Windows
- Configuration Management: Save and load connection configurations
- Auto-Save: Automatically save settings as you type
- File Browser: Built-in file picker for payload selection
- Real-Time Status: Live feedback on injection progress and results
- Input Validation: Comprehensive validation for IP addresses, ports, and files
Download the latest pre-built executables from the Releases page:
- Linux:
ps-payload-injector-linux - Windows:
ps-payload-injector-windows.exe
# Download and make executable
chmod +x ps-payload-injector-linux
./ps-payload-injector-linux- Download
ps-payload-injector-windows.exe - Double-click to run
Windows Security Note: Windows may show a security warning because the executable is not digitally signed. This is normal for open-source software. Click "More info" β "Run anyway" to proceed.
- Launch the application
- Configure target:
- Enter target IP address
- Specify port number
- Select payload file using "Browse..." button
- Save configuration (optional): Click "Save Config" to store settings
- Inject payload: Click "Inject Payload" to begin transmission
- Monitor status: Watch the status indicator for real-time feedback
| Field | Description | Example |
|---|---|---|
| IP Address | Target server IP address | 192.168.1.100 |
| Port | Target server port | 8080 |
| File Path | Path to payload file | /path/to/payload.bin |
- Inject Payload: Start the payload transmission
- Save Config: Save current settings to file
- Load Config: Load previously saved configuration
- Browse...: Open file picker to select payload file
- Autosave Config: Automatically save configuration changes
The application supports two types of configuration:
When auto-save is enabled, the application automatically saves your settings to:
app_config.jsonin the application directory
This file contains all settings including IP, port, file path, and auto-save preference.
- Save Config: Opens a file dialog to save configuration to any location
- Load Config: Opens a file dialog to load configuration from any location
- Saved configurations are JSON files that can be shared or backed up
- Rust 1.70+ (Install Rust)
- Git
For Windows builds on Linux:
# Fedora/RHEL
sudo dnf install mingw64-gcc mingw64-gcc-c++
# Ubuntu/Debian
sudo apt install gcc-mingw-w64-x86-64
# Add Windows target
rustup target add x86_64-pc-windows-gnugit clone https://github.com/yourusername/ps-payload-injector.git
cd ps-payload-injector# Debug build (with console output)
cargo run
# Release build
cargo build --releaseUse our automated build script:
./scripts/build.shThis creates optimized executables in the dist/ folder:
ps-payload-injector-linux(Linux)ps-payload-injector-windows.exe(Windows)
# Linux
cargo build --release --target x86_64-unknown-linux-gnu
# Windows
cargo build --release --target x86_64-pc-windows-gnups-payload-injector/
βββ src/
β βββ main.rs # Application entry point
β βββ ui.rs # GUI implementation
β βββ handlers.rs # Business logic handlers
β βββ lib.rs # Library exports
βββ scripts/
β βββ build.sh # Cross-platform build script
βββ .cargo/
β βββ config.toml # Cross-compilation configuration
βββ tests/ # Integration tests
βββ Cargo.toml # Rust dependencies and metadata
βββ README.md
- eframe: GUI framework (egui + native backend)
- rfd: Native file dialogs
- tokio: Async runtime for network operations
- serde: Serialization for configuration files
# Run all tests
cargo test
# Run with output
cargo test -- --nocapture
# Run specific test
cargo test test_name- This tool is designed for legitimate network testing and educational purposes
- Always ensure you have proper authorization before testing on networks you don't own
- The application validates input but users are responsible for payload content
- Network communications are not encrypted by default
- OS: Linux (x86_64) or Windows 10+ (x86_64)
- RAM: 50MB
- Disk: 20MB free space
- Network: TCP/IP connectivity
- β Linux x86_64
- β Windows x86_64
- β macOS (not currently supported)
- β ARM architectures (not currently supported)
"Permission denied" on Linux:
chmod +x ps-payload-injector-linuxWindows SmartScreen warning:
- Click "More info" β "Run anyway"
- Or add to Windows Defender exclusions
File not found errors:
- Ensure payload file exists and is accessible
- Check file permissions
- Try absolute file paths
Network connection issues:
- Verify target IP and port are correct
- Check firewall settings
- Ensure target service is running
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Rust naming conventions
- Add tests for new functionality
- Update documentation for API changes
- Ensure cross-platform compatibility
- Run
cargo fmtandcargo clippybefore committing
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with egui - Immediate mode GUI framework
- Cross-platform file dialogs by rfd
- Async runtime provided by tokio
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki