Warpaint
Kismet + phone GPS = wardrive maps
Warpaint is a library and command-line utility for integrating GPS Exchange Format (GPX) files with Kismet logs (NetXML) to produce Google Earth (KML) output.
In plain english, warpaint allows you to run Kismet without a GPS receiver and retroactively apply timestamped coordinates from a GPX file to plot discovered access points on a map. Basically you can use your iPhone or Android instead of a GPS device.
Here's an example screenshot from Google Earth after importing a KML file built with warpaint:
Dependencies
Warpaint depends on the schleyfox-ruby_kml gem which exists on GitHub and not Rubyforge. Assuming you have ruby and rubygems, install it like so:
gem install schleyfox-ruby_kml --source http://gems.github.com
Installation
Warpaint is itself a gem. Install it with:
gem install warpaint
Usage
First you will need Kismet, the gold standard in war driving tools.
Next you will need an app or device that can log your trip in GPX format. I'm fond of Stag for iPhone/iPad.
Usage: bin/warpaint <kismetfile.netxml> <coordinates.gpx> (options) [options: invoke with --help]
-g, --gtime GPX_TIME_ADJUSTMENT Adjust the timestamps in GPX file by seconds (can be negative)
-n NETXML_TIME_ADJUSTMENT, Adjust the timestamps in NetXML file by seconds (can be negative)
--ntime
-o, --out OUTPUT The output file (.KML) to write
-h, --help Show this message
If you don't specify an output file warpaint will render the KML to STDOUT. Typical usage is just:
warpaint <kismetfile.netxml> <coordinates.gpx> -o <kmfile.kml>
This will write to a file in KML format which you can now import into Google Earth.
The time adjustment options are supplied in case your GPX logger and your Kismet device times were out of sync.
Contribute
This project is hosted on github. You should open an issue there to report any bugs or send a pull request with any cool new features you've added.
Play nice
Check with your local law-enforcement agency and ethics professor before doing anything crazy. Whatever happens, don't blame me!