AlternativeLink
- 6 Devlogs
- 31 Total hours
Implementation of the SharkLink protocol for PC and other devices. SharkLink was created by Hak5 to check if two Shark Jack Display can connect in a Network.
Implementation of the SharkLink protocol for PC and other devices. SharkLink was created by Hak5 to check if two Shark Jack Display can connect in a Network.
I finally did it! It’s now a cli tool!
It’s a Cli. So, to use it just try the --help/-h flag to get the usage.
Also, I restructured the project into a core lib and the cli bin crates using a cargo workspace. This should allow me to more easily develop the Tui later.
I also set up two github workflows, one that audits my used packages using the actions-rust-lang/audit action. The other one builds me the cli for a lot of different targets using the dtolnay/rust-toolchain action.
I also started writing some instructions to try the project, but this is still an area of active development.
I defiantly need to document the protocol that I’m using.
Also, as I have mentioned I want to create a tui. Maybe later a gui would be a great addition but that’s something I’m not quite sure about.
TryFrom<&str> and std::fmt::Display implemented so it’s really easy to convert a code string to the code structure and backArc<UdpSocket> so broadcaster and direct connection check share one socket reducing overheadSo I reverse engineered the protocol hak5 uses for SharkLink using one SharkJack Display and my PC with Wireshark for package inspection.
I first needed to implement the device discovery which is a broadcast UDP package which in plan text says <PIN> <Sender_Ip>\n so for example 1-3-3-7 192.168.178.1\n
Then I reverse engineered the ping messages which are a direct connection with first PING <Sender_IP>\n and then the response which is ACK <Sender_IP>\n.
Reimplement the program in rust and after that create a tui.