Wireless radio networks are nowadays ubiquitous. One of the key points to the success of wireless technology is the IEEE 802.11 standard. This standard defines hard- and software parameters for WiFi-compliant interoperable devices.
IEEE 802.11 defines two operating modes:
- Managed Mode — in this mode, individual devices communicate over a central device, a so called Access Point, which acts as a mediator between all devices connected to it. The managed mode is primarily designed to provide mobile nodes with access to wired networks. Access points often provide additional services (e.g. DHCP) for central configuration.
- Ad-hoc Mode — in this mode, individual devices can communicate without the need of a central device. The ad-hoc mode is primarily designed for spontaneous and unplanned connections without the need of a dedicated infrastructure. Ad-hoc networks can be established whereever two devices with wireless network cards are close enough to send and receive data over the wireless link.
One of the more interesting parts of this standard is the fact that in both modes, there are devices which are periodically sending out management data, the so called Beacons. This is kind of saying “Hello, I’m here!”. While in managed mode, only access points are sending out beacons, in ad-hoc mode, every station sends out beacons.
These beacons define one part of the data transmitted on the lower layers of the ISO/OSI network protocol stack. In fact, normally, an application doesn’t see these beacons, because they’re handled in the network card firmware and/or the network card driver. With patched drivers there is a possibility to enable the so called Monitor mode which gives applications the chance to process management packages.
Such applications are often called “Wireless Network Sniffers”, or — on a more serious level — “Security and Auditioning Tools”. Wellenreiter II is one of them. Others include Kismet, AirSnort and Ethereal.
The first version of Wellenreiter was written in Perl (using Perl/Gtk as a GUI) by Max Moser, Steffen Keweitz, and Martin J. Muench. In order to get a wireless scanner for handhelds running the Opie environment, in summer 2002, the Wellenreiter team and me started to write a new Wellenreiter in C++ from scratch. We agreed that they would be responsible for the sniffing engine and I would concentrate on the GUI.
Unfortunately, it soon turned out that the Wellenreiter team had not enough time and/or interest in completing this rewrite. After a number of bug-ridden releases, I therefore decided to dive into monitoring wireless networks myself and wrote my own C++-based extensible sniffing engine. The result has been shipped in numerious handhelds distributions like OpenZaurus, Familiar Linux, OpenSIMpad, etc.
Screenshots from v1.0.0
The development of Wellenreiter II has more or less come to an end.
Anyhow I welcome patches. The source code is available via Opie CVS:
cvs -d:pserver:firstname.lastname@example.org:/cvs login
cvs -d:pserver:email@example.com:/cvs co opie
You can also browse through the Opie CVS repository.