Coder Social home page Coder Social logo

rofl0r / macgeiger Goto Github PK

View Code? Open in Web Editor NEW
49.0 10.0 11.0 186 KB

MacGeiger - a tool to track down the location of WIFI APs with sound (Geigercounter-like)

License: GNU General Public License v3.0

C 84.31% Makefile 0.59% Shell 1.05% Ruby 4.92% CSS 1.15% JavaScript 5.42% HTML 2.55%
wifi wifi-network wifi-ap location antenna ncurses color sound signal

macgeiger's Introduction

MacGeiger - a WIFI AP locator utility

this tool puts your wireless card into monitor mode, then processes beacon frames from APs to create a list, in which you can navigate with the cursor keys, then select one AP with ENTER. the AP will open in detail view and start to beep. the faster it beeps, the better is the signal of the AP.

this is quite handy to adjust directional antennas for the perfect signal without having to stare at a screen, which may be impractical.

it can also be used on a mobile linux device (think netbook) to move through the streets and find the physical location of APs. you probably should wear headphones to do so...

the keys +/- and 0/9 can be used to adjust the audio volume.

Dependencies

3rd party dependencies (install them including headers, i.e. -dev package)

  • libpcap :packet capturing library
  • libao :audio output library

1st party dependencies

  • rcb2 :build tool
    • depends on python2
  • concol :terminal library with ncurses,termbox and SDL backends
    • depends on either SDL or ncurses devel package installed

how to build from release tarball:

just run make. if you need to change variables, CFLAGS, etc, do so by creating a file called config.mak and override the settings there. you may also use it to change BACKEND to SDL. by default the ncurses version will be built since it is assumed it is more widely available.

Note: you may find release tarballs attached to git tags in the github repo.

how to build from git:

paste this into your shell

mkdir /tmp/macgeiger-build
cd /tmp/macgeiger-build
for i in rcb2 concol macgeiger libulz ; do git clone git://github.com/rofl0r/$i ; done
mv libulz lib
ln -s rcb2.py rcb2/rcb2
cd macgeiger/
printf "%s\n%s\n" "CFLAGS+=-DCONSOLE_BACKEND=SDL_CONSOLE" "CFLAGS+=-DCONSOLE_FONT=INT10FONT14" > config.mak
PATH="$PATH:../rcb2" make

if you want to use the ncurses backend (which is much harder to debug using gdb), replace SDL_CONSOLE with NCURSES_CONSOLE in the above printf command

alternatively you may use the create-dist script to create a source tarball that does not require the rcb build tool.

rebuilding with a different console backend:

if you decided to try another backend (not the previously used one), run

PATH="$PATH:../rcb2" RCBFLAGS=--new make

how to use:

./macgeiger.out wlan0mon

let the program gather network info for some seconds, then select an AP from the list with cursor-up, cursor-down, then hit ENTER to track it with audio feedback.

macgeiger's People

Contributors

rofl0r avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

macgeiger's Issues

Crash - XInitThreads has not been called

When i run the tool inside an Ubuntu VM (VMware Workstation) it crashes and displays the following error:

[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
macgeiger: ../../src/xcb_io.c:274: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Aborted

It runs for a few seconds and then stops.

UPDATE:

When running a few times more i also get this:

XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
      after 116 requests (116 known processed) with 2 events remaining.

Any chance of resurrection?

I noticed the dependency of python2, and immediately hit the proverbial brakes. Honestly, since I discovered it, I thought it was absolutely brilliant. It is just a shame my acknowledgement came years too late.

Is there any chance of revival?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.