proxawdl icon indicating copy to clipboard operation
proxawdl copied to clipboard

Tunnels a regular TCP connection through an AWDL link by exploiting the NetService API

proxAWDL

Tunnels a regular TCP connection (e.g., iperf) through an AWDL link by exploiting the NetService API. ~~Workaround because Apple prevents regular sockets from listening or connecting to awdl0.~~ As an alternative, there is a special XNU socket option SO_RECV_ANYIF to allow sending/receiving via AWDL:

#define SO_RECV_ANYIF 0x1104 /* unrestricted inbound processing */

Usage

Frist compile with Xcode.

Then, on the server, run

./proxawdl

and start the TCP server listening on localhost, e.g., iperf -s -p 22222.

On the client, run

./proxawdl client

and start the TCP client connecting to localhost, e.g., iperf -c -p 22222.

Limitations

  • hardcoded TCP ports

  • does not multiplex TCP connections which means that applications using multiple TCP connections will probably not function properly

Our Papers

  • Milan Stute, David Kreitschmann, and Matthias Hollick. One Billion Apples’ Secret Sauce: Recipe for the Apple Wireless Direct Link Ad hoc Protocol. In The 24th Annual International Conference on Mobile Computing and Networking (MobiCom ’18), October–November 2018, New Delhi, India. DOI.

Contact

  • Milan Stute (email, web)

Credits