AlternativeLink
This project implements the SharkLink Protocol making it compatible with the Shark Jack Display by Hak5.
This ship is for the underlying core lib in combination with the CLI.
CLI
The CLI tool provides a quick and easy way to use any pc in combination with the Shark Jack Display.
Using the -h/--help flags this help message is printed:
Rust implementation for SharkLink
Usage: alternative-link-cli.exe [OPTIONS] --interface <INTERFACE>
Options:
-i, --interface <INTERFACE>
Interface IP to bind to (skips interactive picker)
-p, --port <PORT>
UDP port to use [default: 1337]
-c, --code <CODE>
Shared room/pairing code [default: 1-3-3-7]
--broadcast-interval <BROADCAST_INTERVAL>
Broadcast interval in seconds [default: 5]
--auto-test
Run non-interactively: auto-test connection as soon as a peer is found. If this is not set after receiving a Ping and sending the Ack the program closes
--no-stop
Prevents the program from automatically stopping (you will need to manually kill the program if this is set)
-v...
Increase log verbosity (-v -vv)
--json
Emit machine-readable JSON status lines instead of prose
--max-direct-tries <MAX_DIRECT_TRIES>
Maximum retries for the direct connection test [default: 20]
-h, --help
Print help
-V, --version
Print version
Development
The first prototype was developed in python using package inspection with wireshark. After refining that prototype, I wrote a first all in one (file) interactive version of that prototype using rust.
Then I found out that the SharkLink tool on the Shark Jack Display a bash script is. (I never looked at it properly but just found out that I accidentally implemented a similar control flow using python and rust)
After that I split the project into the cargo workspace structure with one lib and cli crates.
Now I have started developing an interactive version but more close to original.
Trying it
The README on GitHub details how to run it on windows. This is because I have only tested it in these combinations.
But it should work everywhere because I haven’t used anything os specific and tested it on wsl.
- 6 devlogs
- 31h