Payload Sender is a native macOS SwiftUI application for sending payload files to a configured console over TCP.
The app downloads supported payloads on demand from their upstream release sources or fixed upstream repository files, resolves the correct payload file, and sends the raw bytes to the destination IP and port. It also supports sending a custom local payload file.
If you are using Windows, Linux, or Android, I recommend checking out ItsBlurf/Blurfer.
- Native macOS interface built with SwiftUI.
- Configurable destination console IP address.
- One-click payload buttons for the bundled payload catalog.
- Automatic latest-release lookup for GitHub and Forgejo/Gitea-style repositories.
- Direct-file payload support.
- Custom payload picker with configurable TCP port.
- Drag-and-drop support for custom payload files.
- Payload version chips that refresh when the app opens, with a manual refresh option.
- Connection test for configured payload ports.
- Local status log for download, extraction, connection, success, and failure messages.
- No payload binaries are bundled in this repository.
| Payload | Source | Port |
|---|---|---|
| P2JB-Y2JB | matem6/P2JB-Y2JB-Porting latest GitHub release, preferring p2jb.js |
50000 |
| kstuff-lite | EchoStretch/kstuff-lite latest GitHub release |
9021 |
| ShadowMountPlus | drakmor/ShadowMountPlus latest GitHub release |
9021 |
| Elf Arsenal | https://git.etawen.dev/soniciso/elf-arsenal latest release, preferring elf-arsenal.elf |
9021 |
| etaHEN | zecoxao/zecoxao.github.io repository file: luasauce/payloads/etaHEN-2.6B.bin |
9021 |
| Custom payload | User-selected local file | User-configurable, default 9021 |
etaHEN is downloaded from GitHub's raw file endpoint for the upstream repository path above. It is intentionally pinned to that specific etaHEN-2.6B.bin file instead of selecting the latest GitHub release.
- macOS 14 or newer.
- Network access to the upstream payload repositories.
- A console listening for payloads on the selected TCP port.
Xcode command line tools or Xcode with Swift 5.9 support are only required if you want to build from source.
Download the latest PayloadSender.dmg from the Releases page, open it, and move PayloadSender.app to your Applications folder.
The downloadable app is not notarized, so macOS may show a security warning the first time it is opened.
If macOS says the app is damaged or cannot be opened, move it to /Applications and run:
xattr -dr com.apple.quarantine /Applications/PayloadSender.appThen open the app again.
Clone the repository and run:
swift buildTo build, stage, and launch a local .app bundle:
./script/build_and_run.shThe staged app is created under:
dist/PayloadSender.app
To run tests:
swift testTo create the DMG locally from source:
./script/create_dmg.shThe generated local file is:
dist/PayloadSender.dmg
- Launch Payload Sender.
- Enter the destination console IP address.
- Click one of the payload buttons, or use the custom payload button to select a local file.
- Watch the status log for download, connection, and send results.
- The app does not require accounts, passwords, tokens, or API keys.
- The app stores no bundled payload binaries in the repository.
- Downloaded payloads are cached locally in the user's Application Support folder.
- The destination IP and custom port may be saved locally by macOS user defaults.
Payload Sender does not bundle or redistribute third-party payload binaries. Supported payloads are downloaded on demand from their upstream sources, and each payload remains subject to its own upstream license and terms.
This project is not affiliated with any hardware vendor, platform owner, or upstream payload author.
Use this tool only with hardware you own or are authorized to test. The maintainers of this project are not responsible for third-party payload behavior or for changes made by upstream payload repositories.
