================================================= DiGLE v0.1.1 (Beta 1, Patch 1): Author: arkasha@mimezine.org a wireless network plotting client for WiGLE.net ================================================= Table of contents: - 1.0 .... What's new - 2.0 .... General Notes - 3.0 .... Usage - 3.1 .. The Console - 3.2 .. The Map Panel - 3.3 .. Installing the VBScript for NetStumbler integration - 3.4 .. Building your own mappacks - 3.5 .. SSL Support - 4.0 .... Known Issues - 5.0 .... Bug Reporting - 6.0 .... Libraries and Other Acknowledgements 1.0 What's new in 0.1.0: ------------------------ -Time Range filtering support (early) -Preferences-saving (to text file) -Improved memory usage/clean up and file loading -Bug Fixes (international Windows ',' delimiter settings, a few others) -Autoselection of WiGLE data by mappack 2.0 General Notes: ------------------ DiGLE is written in Borland's Delphi (http://delphi32.com) variant of object-oriented Pascal. (Yeah, I hadn't seen Pascal since TurboPas in Highschool... props to Mr. J. Streeter and J. DV) This means that we should be able to port this to Borland's Kylix library/compiler for Linux with little effort indeed, but lacking a decent Linux development environment, this project is on hold. Syntactically, Delphi is a set of Object-oriented abstractions superimposed on Pascal-that-we-used-to know. Like C++, the result is a vast increase in expressivity and an explosions of ways to write "idiomatic" Delphi. It's also powerful enough to totally shoot yourself in the foot with. I am not a great Delphi programmer yet, and I'm sure that there are foot-hole-making-opportuinities all over this software. By using this software, you agree to the WiGLE-EULA (pronounced a little like "Caligula" posted on the WiGLE.net website (http://wigle.net/eula.html). In short, I'm not responsible for the holes in your feet. You are not allowed to use data you download using DiGLE for other purposes. 3.0 Usage: ---------- Depending on how you got this version of DiGLE, your mileage and installation requirements may vary. Nominally, DiGLE has been tested under Windows 2k, XP, Windows 98 OSRs 1 and 2. Minimum system requirements appear to be an 800x600 pixel 65k-color display, a 200MHz-or-higher processor, and 64 mb. RAM. Off the record, it's been used successfully on less powerful machines, although I recommend culling the large images (the higher the trailing numeric designation, the larger the image by a factor of two) from your .mappack files with a text editor. You'll find that at this stage in the WiGLE project, choice of target city and filter set is everything; cities like LA and Chicago have some serious memory requirements associated to load the raw data, and ver. 2.2-2.4 raster mappacks have extra zoom levels in them. Installation of DiGLE does not modify your system's registry or include uninstall. Like the JiGLE client, you unzip ( preserving pathing info) the program archive and any Mappack archives from WiGLE.net into the base install directory (the one containing the DiGLE executable). Upon launching, DiGLE expects to search that dir for mappack files, and will inform you if it fails to find any by presenting an empty mappack list. Your file heirarchy should read: \DiGLE.exe (your exe name may vary as "DiGGLER") \JiGLEMap\maps\ If DiGLE cannot write to \data, you'll have problems. Starting with version 0.0.7, DiGLE relies upon the windows registry "volatile environment" to interact with NetStumbler (or anything else you care to publish with), but never writes; DiGLE only performs triggered reads, and only in NetStumbler integration mode (see below). 3.1 The Console: ................ The first screen that "pops up" when you launch DiGLE is the "console" screen. This provides info about the status of your interaction with the application. It's also a debugging tool. You can hide the console window by clicking the Minimize image- button on the right side of the console window. The console manages selection of mappack (from your local availability list for now) and your retreival of WiGLE.net data. By choosing "Connect," you'll initiate a connection to WiGLE.net corresponding to the coordinates of your currently selected mappack. Successful connection and retreival will result in the creation and display of a map with points displayed. The count of available stations will be listed on the console upon completion of the WiGLE query. If you check "Cache AP data locally" box, you'll include the caching of WiGLE datasets in the \data directory for offline access when you connect. Note that these datasets may get out of date. (don't turn caching off after one request!) Choosing the "Load..." option instead of "Connect" will bring up a file-open dialog which allows you to select local cache files for viewing (see the above discussion of caching) as well as stumble files in known-creator (dstumbler, kismet, and NetStumbler) wi-scan and wi-scan plus export format (more formats will be forthcoming). Load will automatically select the file whose name matches your currently selected mappack within the current cache directory, but you can easily select other files at your discretion before "OKing" the load. The "options..." button is currently under development. This can allow you to "login" and see your discovered points, allows you to filter your searches by SSID, "Freenets-only," "For-Pay-Networks only," and "DHCP" status (this depends on data quality, of course). Lately, we've started allowing "tracking" via GPS; this can be achieved via a windows/cygwin built copy of GPSd (very effective) OR (that's and exclusive or) via integration with M. Milner's excellent windows stumbling package, NetStumbler, via a somewhat- experimental VBScript which writes to agreed-upon windows registry keys from NetStumbler. This mode has the added bonus of extending groovy colored "tracers" behind your position on update. Your trail is updated on a fixed schedule, averaging updates during that time to create a line with color and width corresponding to the average number of wireless APs reported over the time interval by NetStumbler. Red crosses in NetStumbler integration mode mean GPS fix, but fewer APs seen than samples taken. Selecting the "Center on GPS data" option will attempt to center the map on your position at each update. This is limited by mappack boundaries, and requires a GPS fix. Please remember to let your navigator enjoy the cool effects while running in this mode, while you (the driver) pay attention to the road; wardriving gets enough bad press already these days. The "Exit" button should be self explanatory. Closing the console closes the application, including the open map. 3.2 The Map Panel: .................. Once you select a mappack and load data for it, you'll be presented (shortly after, depending on the speed of your machine) with the map panel. this panel allows navigation within the graphical representation of the data, selection of data, and specification of data. The map-level controls are Zoom-in, Zoom-out, and Set-Center. The station-level controls are Select and show/hide text. The final control actives or deactivates time-range based filtering, controlled by the time-range selectors at the bottom border of the Map Panel. These filters are only as good as the boundaries reported by the WiGLE database, which are, in turn, only as good as the source data. The Map Panel contents will adjust as you change the timeranges, but the underlying date stamps aren't always reliable. The slider on the right-hand side of the map allows filtering of data by WiGLE QoS (also the basis of station coloring). The border buttons also include nudge-west, east, south, and north buttons to move around the map when the map is larger than the displayed area on the screen. Closing the map panel does not close the application. The border button hints should compensate for various resolution vs. font-size issues that occur in higher-resolution displays. 3.3 Installing the VBScript for NetStumbler integration: ........................................................ This release comes packaged with a file named NS-integ.vbs By selecting this script in the View->Options...->Scripting menu in NetStumbler 3.30 (and up?), you can install this script as Type "External Script", Language "VBScript" for DiGLE integration. I hate vbscript, and this is just a test. I'm sure it sucks, and I'd love to incorporate your feedback in the next version. THIS SCRIPT MODIFIES REGISTRY KEYS. Don't use it if that scares you. Hell, that scares me. The keys it modifies are easy to read at the top of the file (just drag it into notepad to view). Once you've installed the script (assuming NS doesn't yell at you), you're ready to restart NS and start stumbling. On GPS position fix, this script will start logging info for DiGLE to use. We recommend Loading a cached dataset in DiGLE after selecting "Use Netstumbler" in the "Advanced Options" panel and selecting the pertinent map. Caveat emptor. This script has ONLY been tested in Windows XP. Targeted stumbling has proven EXTREMELY effective in already-stumbled areas; we recommend you try it responsibly, with a navigator who handles the interactive mapping features for you. 3.4 Building your own mappacks: ............................... Just add coordinates, .png images. See the existing .mappack files in \JiGLEMaps\maps\* for hints using any text editor. Note that due to legacy design, the meanings of "x" and "y" are reversed from what you'd expect them to be in a view of the world where the equator is the cartesian "X" axis. See above disclaimer regarding feet, holes. 3.5 SSL Support: ................ We know you don't want to share your precious WiGLE username and passworld with the world; as a result, we've provided SSL support in this version of DiGLE. The libeay32.dll and ssleay32.dll files will need to be someplace in your path for DiGLE to pick them up; when it does, the checkbox will automatically become active and checked. You can uncheck it if you need/want to send your credentials in the clear, but unless you've an overriding reason to send info in the clear, we recommend you use it. As uhtu is fond of noting, passing credentials over the web in the clear is irresponsible. The SSL connection to WiGLE.net takes place over port 443 (standard SSL) instead of port 80 (proxy users: beware). We aren't distributing the SSL files in this release due to export restrictions (we're working on getting a clearer read about whether or not we can do this) but for the time being, we recommend getting the latest and greatest from http://www.intelicom.si ( http://www.intelicom.si/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=19 was the url at the time of this publication, but it changes). Check http://www.nevrona.com/indy/ssl.html for more details. I just leave the two DLLs in my install directory. Please be sure to read the appropriate documentation regarding crypto and regulation for your part of the world before using these libraries. 4.0 Known Issues: ----------------- Labeling of stations is very poorly laid out. We know. It's much slower then station drawing too. Get off me cheese. There's only one "digital zoom" beyond the precision of the highest-resolution map in the mappack. This is due in part to stretch-drawing APIs in Delphi and partially to keep this client small and light. Note that WiGLE.net considers JiGLE the "definitive" client. DiGLE is a small-light-fast and platform-specific semi-port of JiGLE as well as a testbed for new ideas and means of interaction. DiGLE does not (and may not ever) allow you to submit stations via the interface. why? 'cause often-as-not, ones submitted like that are bunk in our experience. Maybe uploading stumbles via DiGLE would be interesting? DiGLE cannot do coverage area shading yet. Maybe later. DiGLE does not do diffs-based AP data retreival. DiGLE doesn't know how to use a proxy yet. DiGLE does not know the meaning of life. It likely never will. 5.0 Bug Reporting: ------------------ send bug reports and removal requests to arkasha@mimezine.org or WiGLE-Admin@WiGLE.net We're certainly interested in your development efforts, but pending proper licensing of this software, we can't guarantee that we'll accept your patches, suggestions, or alterations. Software is provided "as-is" with not express or implied guarantees. WiGLE.net is also currently hosting a 1-channel irc server where you're welcome to find us, but please be sure to report DiGLE bugs when I'm actually there. 6.0 Libraries and Other Acknowledgements: ----------------------------------------- Portions of this software are Copyright (c) 1993 - 2004, Chad Z. Hower (Kudzu) and the Indy Pit Crew - http://www.nevrona.com/Indy/ This project uses the (excellent) Pascal PNGLib image libraries- TPNGImage 1.4 from Gustavo Daud; thank you Gustavo! We respect the terms of his license, and do not redistribute his source code with our own, you can find current and previous versions of TPNGImage at the project website at http://pngdelphi.sourceforge.net for compression we use Roberto Della Pasqua's (www.dellapasqua.com) fast zlib for the not-yet-supported "deflate" http compression, and PASZLIB 3.2b by Jacques Nomssi Nzali for the *working* "gzip" http encoding type. ( http://www.tu-chemnitz.de/~nomssi/paszlib.html ) I'd kill for advice on effective gzip STREAMING in Delphi. Both pieces of software contain their own licenses, generous licenses, and both a functioning in a non-modified state in DiGLE. NS1 Parsing is achieved through Hugh Kennedy's pascal port of his NS1 parsing library, based on Marius Milner's copyrighted netstumbler file format. SSL suport is implemented using the Intelicom binary library distribution of the OpenSSL 0.9.6k libraries for Indy. For binaries, istructions for building your own, licensing info, see http://www.intelicom.si. For OpenSSL information, see http://www.openssl.org/ . For information about Indy and SSL see the Indy reference above. Thanks, and apologies to M. Milner, The WiGLE team and supporters, the growing wardriving community (especially Blackwave and Roamer), and everyone who recognizes the importance of wardriving for understanding wireless security and the spread of wireless communication. *mimezine fecit*