nexmon – Rev 1

Subversion Repositories:
Rev:
=== Requirements ===

 * OpenSSL development package or libgcrypt development package.
 * Airmon-ng (Linux) requires ethtool.
 * On windows, cygwin has to be used and it also requires w32api package.
 * Linux: LibNetlink 1 or 3. It can be disabled by setting the flag 'libnl' to false.
 * pkg-config (pkgconf on FreeBSD)
 * FreeBSD, OpenBSD, NetBSD, Solaris and OS X with macports: gmake
 * Linux/Cygwin: make

=== Optional stuff ===

 * If you want SSID filtering with regular expression in airodump-ng
   (-essid-regex) pcre development package is required.
 * If you want to use airolib-ng and '-r' option in aircrack-ng,
   SQLite development package >= 3.3.17 (3.6.X version or better is recommended)
 * If you want to use Airpcap, the 'developer' directory from the CD is required.
 * For best performance on FreeBSD (50-70% more), install gcc5 via: pkg install gcc5
          Then compile with: gmake CC=gcc5 CXX=g++5
 * rfkill

=== Compiling ===

 * Compilation:
    make

 * Compilation on *BSD or Solaris:
    gmake

 * Strip debugging symbols:
    make strip

 * Installing:
    make install

 * Uninstall:
    make uninstall

==== Makefile flags ====

When compile and installing, the following flags can be used and combined
to compile and install the suite (by setting them to true):

* sqlite:   Compile airolib-ng and add support for airolib-ng databases
            in aircrack-ng:
            - Debian based distro: libsqlite3-dev
            - FreeBSD: sqlite3

* airpcap:  needed for supporting airpcap devices on windows (cygwin only)
            REQUIREMENT: Copy 'developers' directory from Airpcap CD one 
                         level below this INSTALLING file
            Note: Not working yet.

* experimental: needed to compile tkiptun-ng, easside-ng (and buddy-ng),
                wesside-ng and besside-ng.
                Building besside-ng-crawler requires LibPCAP (development package).
                On Debian based distributions: libpcap-dev

* ext_scripts: needed to build airoscript-ng, versuck-ng, airgraph-ng and 
            airdrop-ng. 
            Note: Experimental. Each script has its own dependences.
            Note: It's only required in install phase.

* gcrypt:   Use libgcrypt crypto library instead of the default OpenSSL.
            And also use internal fast sha1 implementation (borrowed from GIT)
            Dependency (Debian): libgcrypt20-dev

* libnl:    Add support for netlink (nl80211). Linux only. Requires libnl1 OR libnl3.
            Enabled by default. Dependencies (debian):
                LibNL 1: libnl-dev 
                LibNL 3: libnl-3-dev and libnl-genl-3-dev.

* pcre:     Add support for regular expression matching for ESSID in airodump-ng and besside-ng.
            Dependencies:
            - Debian based distro: libpcre3-dev
            - FreeBSD: pcre

* duma:     Compile with DUMA support. DUMA is a library to detect buffer overruns and under-runs.
            Dependencies (debian): duma

* xcode:    Set this flag to true to compile on OS X with Xcode 7+.

* macport:  Set this flag to true to compile on OS X with macports.

Example:

  * Compiling:
    make sqlite=true experimental=true pcre=true

  * Compiling with gcrypt
    make gcrypt=true

  * Installing:
    make sqlite=true pcre=true experimental=true install

  * Installing, with external scripts:
    make sqlite=true pcre=true experimental=true ext_scripts=true

  * Testing (with sqlite, experimental and pcre)
    make sqlite=true experimental=true pcre=true check

  * Compiling on OS X with macports (and all options):
    gmake macport=true sqlite=true experimental=true pcre=true

  * Compiling on FreeBSD with better performance
    gmake CC=gcc5 CXX=g++5

=== Using precompiled binaries ===

Linux/BSD:
 * Use your package manager to download aircrack-ng
 * In most cases, they have an old version.
 
Windows:
 * Install the appropriate "monitor" driver for your card (standard drivers doesn't work for capturing data).
 * aircrack-ng suite is command line tools. So, you have to open a commandline
   (Start menu -> Run... -> cmd.exe) then use them
 * Run the executables without any parameters to have help