User Tools

Site Tools


airolib-ng

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
airolib-ng [2007/07/09 22:02]
darkaudax
airolib-ng [2013/03/18 13:32] (current)
jano Change the external link --> "churchofwifi.org/Project" because it no longer exists
Line 1: Line 1:
 ====== Airolib-ng ====== ====== Airolib-ng ======
- 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
- 
-This functionality will be available in a future release. It is NOT available currently. 
- 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
  
 ===== Description ===== ===== Description =====
  
-Airolib-ng is a tool for the aircrack-ng suite to store and manage essid and password lists, compute their Pairwise Master Keys (PMKs) and use them in WPA/WPA2 cracking. ​ The program uses the lightweight ​sqlite3 ​database as the storage mechanism which is available on most platforms. ​ The sqlite3 ​database was selected taking in consideration platform availability plus management, memory and disk overhead.+Airolib-ng is an aircrack-ng suite tool designed ​to store and manage essid and password lists, compute their Pairwise Master Keys (PMKs) and use them in WPA/WPA2 cracking. ​ The program uses the lightweight ​SQLite3 ​database as the storage mechanism which is available on most platforms. ​ The SQLite3 ​database was selected taking in consideration platform availability plus management, memory and disk overhead.
  
 WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived. ​  Using the PTK, we can compute the frame message identity code (MIC) for a given packet and will potentially find the MIC to be identical to the packet'​s thus the PTK was correct therefore the PMK was correct as well. WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived. ​  Using the PTK, we can compute the frame message identity code (MIC) for a given packet and will potentially find the MIC to be identical to the packet'​s thus the PTK was correct therefore the PMK was correct as well.
  
-Calculating the PMK is very slow since it uses the pbkdf2 algorithm. ​ Yet the PMK is always the same for a given ESSID and password combination. This allows us to pre-compute the PMK for given combinations and speed up cracking the wpa/wpa2 handshake. ​ Tests on have shown that using this technique in [[aircrack-ng]] can check more than 30,000 passwords per second using pre-computed PMK tables.+Calculating the PMK is very slow since it uses the pbkdf2 algorithm. ​ Yet the PMK is always the same for a given ESSID and password combination. This allows us to pre-compute the PMK for given combinations and speed up cracking the wpa/wpa2 handshake. ​ Tests have shown that using this technique in [[aircrack-ng]] can check more than 50 000 passwords per second using pre-computed PMK tables.
  
 Computing the PMK is still required, yet we can: Computing the PMK is still required, yet we can:
Line 30: Line 20:
 To learn more about coWPAtty: To learn more about coWPAtty:
  
-  * [[http://​www.churchofwifi.org/default.asp?​PageLink=Project_Display.asp?PID=95|Church of Wifi CoWPAtty]]+  * [[http://​www.willhackforsushi.com/?page_id=50|Will Hack For SUSHI > CoWPAtty]]
   * [[http://​www.wirelessdefence.org/​Contents/​coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]]   * [[http://​www.wirelessdefence.org/​Contents/​coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]]
  
-See the code attached for more infoThis is the first version ​posted and - if accepted - to be included into the tree. there still may be bugs and work to be done before released is marked in the code. +As stated above, this program requires ​the SQLite3 database environment You must be running ​version ​3.3.17 or above.  ​You may obtain ​the latest version from the [[http://www.sqlite.org/​download.html|SQLite download page]].
- +
-To test the tool get yourself a current 1.0-dev checkout and... +
- +
-  * get yourself ​the sqlite3 library and headers +
-  * compile airolib-ng in srcdirectory with -lsqlite3 -lssl and crypto.+
-  * compile aircrack-ng with -DHAVE_SQLITE and -lsqlite3This will make a new option "​-r"​ available +
-  * create a new database file with "​airolib-ng testdb init"​ +
-  * import some essid, e.g. "echo Harkonen ​airolib-ng testdb import ascii essid -" +
-  * import some passwords, e.g. "echo 12345678 | airolib-ng testdb import ascii passwd -" +
-  * start the batch process ("​airolib-ng testdb batch"​),​ wait for it to run out of work, kill it +
-  * crack your WPA/WPA2 handshake, e.g. "​aircrack-ng -r testdb -e Harkonen -q wpa2.eapol.cap"+
  
  
Line 59: Line 38:
 Here are the valid operations: Here are the valid operations:
  
-  * init  ​ ​Create a new database file and it's table layout. +  * - -stats  -  Output some information about the database. 
-  * stats  -  Output some information about the database. +  * - -sql {sql}  - Execute the specified SQL statement. 
-  * sql {sql}  - Execute the specified SQL statement. +  * - -clean [all]  -  Perform steps to clean the database from old junk. The option '​all'​ will also reduce file size if possible and run an integrity check. 
-  * clean [all]  -  Perform steps to clean the database from old junk. The option '​all'​ will also reduce file size if possible and run an integrity check. +  * - -batch  - Start batch-processing all combinations of ESSIDs and passwords. ​ This must be run prior to using the database within [[aircrack-ng]] or after you have added additional SSIDs or passwords. 
-  * batch  - Start batch-processing all combinations of ESSIDs and passwords. ​ This must be run prior to using the database within [[aircrack-ng]] or after you have added additional SSIDs or passwords. +  * - -verify [all]  - Verify a set of randomly chosen PMKs. If the option '​all'​ is given, all(!) PMKs in the database are verified and the incorrect ones are deleted. 
-  * verify [all]  - Verify a set of randomly chosen PMKs. If the option '​all'​ is given, all(!) PMKs in the database are verified and the incorrect ones are deleted. +  * - -export cowpatty {essid} {file} ​ -  Export to a cowpatty file. 
-  * export cowpatty {essid} {file} ​ -  Export to a cowpatty file. +  * - -import cowpatty {file} ​ -  Import a cowpatty file and create the database if it does not exist
-  * import cowpatty {file} ​ -  Import a cowpatty file. +  * - -import {essid|passwd} {file} ​ -  Import a text flat file as a list of either ESSIDs or passwords ​and create the database if it does not exist. ​ This file must contain one essid or password per line.  Lines should be terminated with line feeds. ​ Meaning press "​enter"​ at the end of each line when entering the values.
-  * import ​ascii {essid|passwd} {file} ​ -  Import a flatfile ​as a list of either ESSIDs or passwords. +
  
 ===== Usage Examples ===== ===== Usage Examples =====
Line 74: Line 51:
 Here are usage examples for each operation. Here are usage examples for each operation.
  
-==== Init Operation ==== +==== Status ​Operation ====
- +
-You must be in the directory where you want the database created or specify the fully qualified path name.+
  
 Enter: Enter:
  
-   ​airolib-ng testdb ​init+   ​airolib-ng testdb ​--stats
  
 Where: Where:
  
   * testdb is the name of the database to be created.   * testdb is the name of the database to be created.
-  * init is the operation to be performed.+  * - -stats ​is the operation to be performed.
  
-The system ​does not respond with any output. ​ You can verify the database was created by doing a directly listing.+The system ​responds:
  
 +   ​statsThere are 2 ESSIDs and 232 passwords in the database. 464 out of 464 possible combinations have been computed (100%).
 +   
 +   ​ESSID ​  ​Priority ​       Done
 +   ​Harkonen ​       64      100.0
 +   ​teddy ​  ​64 ​     100.0
  
-==== Status ​Operation ====+==== SQL Operation ==== 
 + 
 +The following example will give the SSID "​VeryImportantESSID"​ maximum priority.
  
 Enter: Enter:
  
-   ​airolib-ng testdb ​stats+   ​airolib-ng testdb ​--sql '​update essid set prio=(select min(prio)-1 from essid) where essid="​VeryImportantESSID";'​
  
-Where:+The system responds:
  
-  ​* testdb is the name of the database to be created. +   ​update essid set prio=(select min(prio)-1 from essid) where essid="​VeryImportantESSID";​ 
-  * stats is the operation to be performed.+   ​Query done1 rows affected.
  
-The system responds:+The following example will look for very important patterns in the pmk.
  
-   ​statsThere are 2 ESSIDs and 232 passwords in the database. 464 out of 464 possible combinations have been computed (100%). +Enter:
-    +
-   ​ESSID ​  ​Priority ​       Done +
-   ​Harkonen ​       64      100.0 +
-   ​teddy ​  ​64 ​     100.0+
  
 +   ​airolib-ng testdb --sql '​select hex(pmk) from pmk where hex(pmk) like "​%DEADBEEF%"'​
  
-==== SQL Operation ==== +The system responds:
- +
-Coming soon!+
  
 +   ​hex(pmk) BF3F122D3CE9ED6C6E7E1D7D13505E0A41EC4C5A3DEADBEEFFEFF597387AFCE3
  
 ==== Clean Operation ==== ==== Clean Operation ====
Line 119: Line 97:
 To do a basic cleaning, enter: To do a basic cleaning, enter:
  
-   ​airolib-ng testdb clean+   ​airolib-ng testdb ​--clean
  
 The system responds: The system responds:
Line 131: Line 109:
 To do a basic cleaning, reduce the file size if possible and run an integrity check., enter: To do a basic cleaning, reduce the file size if possible and run an integrity check., enter:
  
-   ​airolib-ng testdb clean all+   ​airolib-ng testdb ​--clean all
  
 The system responds: The system responds:
Line 144: Line 122:
    Query done. 2 rows affected.    Query done. 2 rows affected.
    Done.    Done.
- 
  
 ==== Batch Operation ==== ==== Batch Operation ====
Line 150: Line 127:
 Enter: Enter:
  
-   ​airolib-ng testdb batch+   ​airolib-ng testdb ​--batch
  
 The system responds: The system responds:
  
    ​Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer). No free ESSID found. Will try determining new ESSID in 5 minutes...    ​Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer). No free ESSID found. Will try determining new ESSID in 5 minutes...
- 
-IMPORTANT: You must press control-C to terminate this program once it is finished or it will continue to run indefinitely. 
- 
- 
  
 ==== Verify Operation ==== ==== Verify Operation ====
Line 164: Line 137:
 To verify a 1000 random PMKs, enter: To verify a 1000 random PMKs, enter:
  
-   ​airolib-ng testdb verify+   ​airolib-ng testdb ​--verify
  
 The system responds: The system responds:
Line 176: Line 149:
 To verify all PMKs, enter: To verify all PMKs, enter:
  
-   ​airolib-ng testdb verify all+   ​airolib-ng testdb ​--verify all
  
 The system responds: The system responds:
Line 184: Line 157:
  
  
-==== Export cowpatty Operation ==== +==== Cowpatty ​table Export Operation ====
- +
-++++++ IMPORTANT ++++++\\ +
- +
-This functionality will be available in a future release. It is NOT available currently. +
- +
-++++++ IMPORTANT ++++++\\ +
-++++++ IMPORTANT ++++++\\ +
-++++++ IMPORTANT ++++++\\ +
- +
-===== Description ===== +
- +
-Airolib-ng is a tool for the aircrack-ng suite to store and manage essid and password lists, compute their Pairwise Master Keys (PMKs) and use them in WPA/WPA2 cracking. ​ The program uses the lightweight sqlite3 database as the storage mechanism which is available on most platforms. ​ The sqlite3 database was selected taking in consideration platform availability plus management, memory and disk overhead. +
- +
-WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived. ​  Using the PTK, we can compute the frame message identity code (MIC) for a given packet and will potentially find the MIC to be identical to the packet'​s thus the PTK was correct therefore the PMK was correct as well. +
- +
-Calculating the PMK is very slow since it uses the pbkdf2 algorithm. ​ Yet the PMK is always the same for a given ESSID and password combination. This allows us to pre-compute the PMK for given combinations and speed up cracking the wpa/wpa2 handshake. ​ Tests on have shown that using this technique in [[aircrack-ng]] can check more than 30,000 passwords per second using pre-computed PMK tables. +
- +
-Computing the PMK is still required, yet we can: +
-  +
-  * Precompute it for later and/or shared use. +
-  * Use distributed machines to generate the PMK and use their value elsewhere. +
- +
-To learn more about WPA/WPA2: +
- +
-  * See the [[links#​wpa_wpa2_information|WPA/​WPA2 Information section]] on the wiki links page. +
- +
-To learn more about coWPAtty: +
- +
-  * [[http://​www.churchofwifi.org/​default.asp?​PageLink=Project_Display.asp?​PID=95|Church of Wifi CoWPAtty]] +
-  * [[http://​www.wirelessdefence.org/​Contents/​coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]] +
- +
-See the code attached for more info. This is the first version posted and - if accepted - to be included into the tree. there still may be bugs and work to be done before released is marked in the code. +
- +
-To test the tool get yourself a current 1.0-dev checkout and... +
- +
-  * get yourself the sqlite3 library and headers +
-  * compile airolib-ng in src/ directory with -lsqlite3 -lssl and crypto.c +
-  * compile aircrack-ng with -DHAVE_SQLITE and -lsqlite3. This will make a new option "​-r"​ available +
-  * create a new database file with "​airolib-ng testdb init"​ +
-  * import some essid, e.g. "echo Harkonen | airolib-ng testdb import ascii essid -" +
-  * import some passwords, e.g. "echo 12345678 | airolib-ng testdb import ascii passwd -" +
-  * start the batch process ("​airolib-ng testdb batch"​),​ wait for it to run out of work, kill it +
-  * crack your WPA/WPA2 handshake, e.g. "​aircrack-ng -r testdb -e Harkonen -q wpa2.eapol.cap"​ +
- +
- +
-===== Usage ===== +
- +
-Usage: airolib <​database>​ <​operation>​ [options] +
- +
-Where: +
- +
-  * database is name of the database file.  Optionally specify the full path. +
-  * operation specifies the action you would like taken on the database. ​ See below for a complete list. +
-  * options may be required depending on the operation specified +
- +
-Here are the valid operations:​ +
- +
-  * init  -  Create a new database file and it'​s ​table layout. +
-  * stats  -  Output some information about the database. +
-  * sql {sql}  - Execute the specified SQL statement. +
-  * clean [all]  -  Perform steps to clean the database from old junk. The option '​all'​ will also reduce file size if possible and run an integrity check. +
-  * batch  - Start batch-processing all combinations of ESSIDs and passwords. ​ This must be run prior to using the database within [[aircrack-ng]] or after you have added additional SSIDs or passwords. +
-  * verify [all]  - Verify a set of randomly chosen PMKs. If the option '​all'​ is given, all(!) PMKs in the database are verified and the incorrect ones are deleted. +
-  * export cowpatty {essid} {file} ​ -  ​Export ​to a cowpatty file. +
-  * import cowpatty {file} ​ -  Import a cowpatty file. +
-  * import ascii {essid|passwd} {file} ​ -  Import a flatfile as a list of either ESSIDs or passwords. +
- +
- +
-===== Usage Examples ===== +
- +
-Here are usage examples for each operation. +
- +
-==== Init Operation ==== +
- +
-You must be in the directory where you want the database created or specify the fully qualified path name.+
  
 Enter: Enter:
  
-   ​airolib-ng testdb ​init+   ​airolib-ng testdb ​--export cowpatty test cowexportoftest
  
-Where:+The system responds:
  
-  * testdb is the name of the database to be created+   ​exportExporting..
-  * init is the operation to be performed.+   Done.
  
-The system does not respond with any output. ​ You can verify the database was created by doing a directly listing. 
  
 +==== Import Operation ====
  
-==== Status Operation ====+=== SSID === 
 +To import an ascii list of SSIDs and create the database if it does not exist, enter:
  
-Enter: +   airolib-ng testdb ​--import essid ssidlist.txt
- +
-   airolib-ng testdb ​stats+
  
 Where: Where:
  
-  * testdb is the name of the database to be created. +  * testdb is the name of the database to be updated and it will be created ​if it does not exist
-  * stats is the operation to be performed.+  * - -import ​is the operation to be performed
 +  * essid indicates it is a list of SSIDs. 
 +  * ssidlist.txt is the file name containing the SSIDs. ​ One per line.  It can optionally be fully qualified.
  
 The system responds: The system responds:
  
-   statsThere are 2 ESSIDs and 232 passwords in the database464 out of 464 possible combinations have been computed (100%)+   importReading... 
-    +   Writing... 
-   ESSID   ​Priority ​       ​Done +   Done.
-   ​Harkonen ​       64      100.0 +
-   ​teddy ​  ​64 ​     100.0+
  
 +=== Passwords ===
 +To import an ascii list of passwords and create the database if it does not exist, enter:
  
-==== SQL Operation ====+   ​airolib-ng testdb --import passwd password.lst
  
-Coming soon!+Where:
  
- +  * testdb is the name of the database to be updated and it will be created if it does not exist. 
-==== Clean Operation ==== +  * - -import is the operation to be performed. 
- +  * passwd indicates it is list of passwords. 
-To do basic cleaning, enter: +  * password.list is the file name. One per line. It can optionally be fully qualified.
- +
-   ​airolib-ng testdb clean+
  
 The system responds: The system responds:
  
-   cleanDeleting invalid ESSIDs and passwords... +   importReading... 
-   Deleting unreferenced PMKs... +   Writing... read, 1814 invalid lines ignored.
-   ​Analysing index structure...+
    Done.    Done.
  
 +=== Cowpatty tables ===
  
-To do basic cleaning, reduce ​the file size if possible and run an integrity check., enter:+Imports ​cowpatty table and create ​the database ​if it does not exist, enter:
  
-   ​airolib-ng testdb ​clean all+   ​airolib-ng testdb ​--import cowpatty ​ cowexportoftest
  
-The system responds:+Where:
  
-   ​cleanDeleting invalid ESSIDs ​and passwords..+  * testdb is the name of the database to be updated ​and it will be created if it does not exist
-   Deleting unreferenced PMKs... +  * - -import is the operation to be performed. 
-   ​Analysing index structure... +  * cowpatty indicates it is cowpatty table
-   ​Vacuum-cleaning ​the databaseThis could take while..+  * cowexportoftest is the file nameOne per lineIt can optionally be fully qualified.
-   Checking database integrity... +
-   ​integrity_check +
-   ok +
-   Query done. 2 rows affected. +
-   ​Done. +
- +
- +
-==== Batch Operation ==== +
- +
-Enter: +
- +
-   ​airolib-ng testdb batch+
  
 The system responds: The system responds:
  
-   Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer)No free ESSID foundWill try determining new ESSID in 5 minutes...+   importReading header..
 +   ​Reading... 
 +   ​Updating references... 
 +   ​Writing...
  
-IMPORTANT: You must press control-C to terminate this program once it is finished or it will continue to run indefinitely. 
  
 +===== Aircrack-ng Usage Example =====
  
- +The ultimate objective is to speed up WPA/WPA2 cracking under [[aircrack-ng]]. ​ To use the tables you have built using airolib-ng then use the "​-r"​ option to specify the database containing the pre-calculated PMKs.
-==== Verify Operation ====+
  
 Enter: Enter:
  
-   airolib-ng testdb ​export cowpatty test cowexportoftest+   aircrack-ng  ​-r ​testdb ​ ​wpa2.eapol.cap
  
 Where: Where:
  
-  * testdb is the name of the database and may be optionally fully qualified. +  ​* -r specifies that a pre-computed PMK database will be used. 
-  * export cowpatty is the operation to be peformed. +  ​* testdb is the name of the database ​file and may optionally ​be fully qualified. 
-  * test is the SSID to be exported. +  * wpa2.eapol.cap is capture file containing ​the WPA/WPA2 handshake.
-  * cowexportoftest ​is the coWPAtty file to be created and may be optionally fully qualified.+
  
-The system responds:+Note All the other standard options which are applicable to WPA/WPA2 may also be used.  This is a very limited example.
  
-   ​exportExporting... 
-   Done. 
  
 +===== Usage Tips =====
  
-==== Import cowpatty Operation ​====+==== Creating your own database example ​====
  
-Enter:+To test the tool yourself...
  
-   airolib-ng testdb import ​cowpatty cowexportoftest ​+  * get yourself the sqlite3 library and headers (latest version is recommended) 
 +  * get yourself the 1.0dev version of the aircrack-ng suite 
 +  * import an essid, e.g. "echo Harkonen | airolib-ng testdb ​--import ​essid -"
  
-Where:+   ​Database <​testdb>​ does not already exist, creating it... 
 +   ​Database <​testdb>​ sucessfully created 
 +   ​Reading file... 
 +   ​Writing... 
 +   Done.
  
-  ​* testdb is the name of the database and may be optionally fully qualified. +  * import ​a password, e.g"echo 12345678 | airolib-ng testdb --import passwd -"
-  ​* import ​cowpatty is the operation to be peformed. +
-  * cowexportoftest is the coWPAtty file to be imported and may be optionally fully qualified.+
  
-The system responds: +   Reading ​file...
-    +
-   ​importReading header... +
-   Reading... +
-   ​Updating references...+
    ​Writing...    ​Writing...
 +   Done.
  
 +  * start the batch process ("​airolib-ng testdb --batch"​),​ wait for it to run out of work, kill it
  
-==== Import ascii Operation ====+   ​Computed 1 PMK in 0 seconds (1 PMK/s, 0 in buffer). All ESSID processed.
  
-To import an ascii list of SSIDs, enter:+  * Check the database to confirm everything has been computed ("​airolib-ng testdb --stats"​)
  
-   airolib-ng testdb import ascii essid ssidlist.txt+   There are 1 ESSIDs and 1 passwords in the database1 out of 1 possible combinations have been computed (100%). 
 +    
 +   ​ESSID ​  ​Priority ​       Done 
 +   ​Harkonen ​       64      100.0
  
-Where:+  * crack your WPA/WPA2 handshake, e.g. "​aircrack-ng -r testdb -e Harkonen wpa2.eapol.cap"​
  
-  * testdb is the name of the database to be updated and this must already exist. +   KEY FOUND! [ 12345678 ]
-  * import ascii is the operation to be performed. +
-  * essid indicates it is a list of SSIDs. +
-  * ssidlist.txt is the file name containing the SSIDs. ​ One per line.  It can optionally be fully qualified.+
  
-The system responds: 
  
-   ​importReading... 
-   ​Writing... 
-   Done. 
  
 +==== Using a sample pre-made database ====
  
-To import an ascii list of passwords, enter:+Another way to test for yourself is to download a pre-made database called [[http://​download.aircrack-ng.org/​wiki-files/​other/​passphrases.db|passphrases.db]]. ​ This  file is also located in the test directory of the aircrack-ng sources. Then try this database with the two test WPA/WPA2 files supplied in the test directory of the aircrack-ng sources. ​ The WPA/WPA2 test files are called "​wpa.cap"​ and "​wpa2.eapol.cap"​.
  
-   ​airolib-ng testdb import ascii passwd password.lst+The commands are either of:
  
-Where:+   ​aircrack-ng -r passphrases.db wpa.cap 
 +   ​aircrack-ng -r passphrases.db wpa2.eapol.cap
  
-  * testdb is the name of the database to be updated and this must already exist. +This should give you the passphase.  ​Success ​indicates ​that your setup is working correctly.
-  * import ascii is the operation to be performed. +
-  * passwd ​indicates ​it is a list of passwords. +
-  * password.list is the file name.  One per line.  It can optionally be fully qualified.+
  
-The system responds: 
  
-   ​importReading... +===== Usage Troubleshooting =====
-   ​Writing... read, 1814 invalid lines ignored. +
-   Done.+
  
  
-===== Aircrack-ng Usage Example ​=====+==== Enabling Airolib-ng ==== 
 +Airolib-ng is not compiled by default. ​ To enable compiling, do "make sqlite=true"​ and "make sqlite=true install"​.
  
-The ultimate objective ​is to speed up WPA/WPA2 cracking under [[aircrack-ng]].  ​To use the tables ​you have built using airolib-ng ​then use the "​-r"​ option to specify the database containing the pre-calculated PMKs.+==== Compile Error ==== 
 +Although this is not a usage troubleshooting tip, it is a common problem during the compilation of the 1.0dev version.  ​As a reminder, SQLite must be version 3.3.13 or above. ​ This is the compile error you receive when your version of SQLite is less then the requirement:​
  
-Enter:+  gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=`../​evalrev` -I/​usr/​local/​include -Iinclude -DHAVE_SQLITE ​  -c -o airolib-ng.o airolib-ng.c 
 +  airolib-ng.cIn function `sql_prepare':​ 
 +  airolib-ng.c:​129:​ warning: implicit declaration of function `sqlite3_prepare_v2'​ 
 +  make[1]: *** [airolib-ng.o] Error 1 
 +  make[1]: Leaving directory `/​root/​1.0-dev/​src'​ 
 +  make: *** [all] Error 2 
 +   
 +==== When is the SQLite patch needed? ====
  
-   aircrack-ng  ​-r testdb ​ wpa2.eapol.cap+The SQLite patch included with aircrack-ng ​sources is only needed when compiling under Windows. ​ It is required to remove some elements which will not compile under windows and are not required.
  
-Where:+It is not required for linux installations.
  
-  * -r specifies that a pre-computed PMK database will be used. +==== Airolib-ng fails to open or create ​the database ​====
-  * testdb is the name of the database ​file and may optionally be fully qualified. +
-  * wpa2.eapol.cap is capture file containing the WPA/WPA2 handshake.+
  
-Note:  All the other standard options which are applicable to WPA/WPA2 may also be used.  This is very limited example.+On windows only, opening/creating ​database doesn'​t work when airolib-ng is in directories containing special characters like '​ç',​ '​é',​ '​è',​ '​à',​ ... (directories containing spaces are not affected).
  
 +The solution is to move airolib-ng and its database in another directory without these special characters.
  
-===== Usage Tips =====+==== "​invalid lines ignored"​ error message ​====
  
-None at this time.+This error message may occur when importing passwords or ESSIDs  It is the number of records with invalid passwords or ESSIDs lengths. ​ The valid lengths are:
  
 +  * Passwords must have a length of 8 through 63 characters
 +  * ESSIDs must have a length of 1 through 32 characters
  
-===== Usage Troubleshooting ​===== +==== "​Quitting aircrack-ng..."​ error message ​====
- +
-None at this time.+
  
 +If you subsequently run aircrack-ng and only receive "​Quitting aircrack-ng..."​ then the ESSID is missing from the database. ​ You need to load it plus rerun the batch option.
  
airolib-ng.1184011379.txt.gz · Last modified: 2007/07/09 22:02 by darkaudax