Merge pull request #22256 from Ansuel/aircrack-ng-pcre2
aircrack-ng: bump to release 1.7 + PCRE2
This commit is contained in:
commit
fc23466e61
13 changed files with 1098 additions and 4 deletions
|
@ -8,15 +8,15 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=aircrack-ng
|
PKG_NAME:=aircrack-ng
|
||||||
PKG_VERSION:=1.6
|
PKG_VERSION:=1.7
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
PKG_LICENSE:=GPL-2.0-or-later
|
PKG_LICENSE:=GPL-2.0-or-later
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
PKG_CPE_ID:=cpe:/a:aircrack-ng:aircrack-ng
|
PKG_CPE_ID:=cpe:/a:aircrack-ng:aircrack-ng
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://download.aircrack-ng.org/
|
PKG_SOURCE_URL:=https://download.aircrack-ng.org/
|
||||||
PKG_HASH:=4f0bfd486efc6ea7229f7fbc54340ff8b2094a0d73e9f617e0a39f878999a247
|
PKG_HASH:=05a704e3c8f7792a17315080a21214a4448fd2452c1b0dd5226a3a55f90b58c3
|
||||||
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
@ -40,7 +40,7 @@ include $(INCLUDE_DIR)/package.mk
|
||||||
define Package/aircrack-ng
|
define Package/aircrack-ng
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
DEPENDS:=+AIRCRACK_NG_HWLOC:libhwloc +libpcap +libpcre +libpthread +libstdcpp
|
DEPENDS:=+AIRCRACK_NG_HWLOC:libhwloc +libpcap +libpcre2 +libpthread +libstdcpp
|
||||||
DEPENDS += +AIRCRACK_NG_OPENSSL:libopenssl
|
DEPENDS += +AIRCRACK_NG_OPENSSL:libopenssl
|
||||||
DEPENDS += +AIRCRACK_NG_GCRYPT:libgcrypt
|
DEPENDS += +AIRCRACK_NG_GCRYPT:libgcrypt
|
||||||
DEPENDS += +AIRCRACK_NG_SQLITE3:libsqlite3
|
DEPENDS += +AIRCRACK_NG_SQLITE3:libsqlite3
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
From 6b05dc10cdcf45d50bc8f9dd74667a3ff399a059 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Fri, 20 Jan 2023 14:52:12 +0100
|
||||||
|
Subject: [PATCH 1/9] autotools: add PCRE2 detection
|
||||||
|
|
||||||
|
---
|
||||||
|
build/m4/aircrack_ng_pcre2.m4 | 61 +++++++++++++++++++++++++++++++++++
|
||||||
|
configure.ac | 2 ++
|
||||||
|
2 files changed, 63 insertions(+)
|
||||||
|
create mode 100644 build/m4/aircrack_ng_pcre2.m4
|
||||||
|
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/build/m4/aircrack_ng_pcre2.m4
|
||||||
|
@@ -0,0 +1,61 @@
|
||||||
|
+dnl Aircrack-ng
|
||||||
|
+dnl
|
||||||
|
+dnl Copyright (C) 2023 Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
+dnl
|
||||||
|
+dnl Autotool support was written by: Joseph Benden <joe@benden.us>
|
||||||
|
+dnl
|
||||||
|
+dnl This program is free software; you can redistribute it and/or modify
|
||||||
|
+dnl it under the terms of the GNU General Public License as published by
|
||||||
|
+dnl the Free Software Foundation; either version 2 of the License, or
|
||||||
|
+dnl (at your option) any later version.
|
||||||
|
+dnl
|
||||||
|
+dnl This program is distributed in the hope that it will be useful,
|
||||||
|
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+dnl GNU General Public License for more details.
|
||||||
|
+dnl
|
||||||
|
+dnl You should have received a copy of the GNU General Public License
|
||||||
|
+dnl along with this program; if not, write to the Free Software
|
||||||
|
+dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
+dnl
|
||||||
|
+dnl In addition, as a special exception, the copyright holders give
|
||||||
|
+dnl permission to link the code of portions of this program with the
|
||||||
|
+dnl OpenSSL library under certain conditions as described in each
|
||||||
|
+dnl individual source file, and distribute linked combinations
|
||||||
|
+dnl including the two.
|
||||||
|
+dnl
|
||||||
|
+dnl You must obey the GNU General Public License in all respects
|
||||||
|
+dnl for all of the code used other than OpenSSL.
|
||||||
|
+dnl
|
||||||
|
+dnl If you modify file(s) with this exception, you may extend this
|
||||||
|
+dnl exception to your dnl version of the file(s), but you are not obligated
|
||||||
|
+dnl to do so.
|
||||||
|
+dnl
|
||||||
|
+dnl If you dnl do not wish to do so, delete this exception statement from your
|
||||||
|
+dnl version.
|
||||||
|
+dnl
|
||||||
|
+dnl If you delete this exception statement from all source files in the
|
||||||
|
+dnl program, then also delete it here.
|
||||||
|
+
|
||||||
|
+AC_DEFUN([AIRCRACK_NG_PCRE2], [
|
||||||
|
+AC_ARG_ENABLE(static-pcre2,
|
||||||
|
+ AS_HELP_STRING([--enable-static-pcre2],
|
||||||
|
+ [Enable statically linked PCRE2 libpcre2-8.]),
|
||||||
|
+ [static_pcre2=$enableval], [static_pcre2=no])
|
||||||
|
+
|
||||||
|
+if test "x$static_pcre2" != "xno"; then
|
||||||
|
+ AC_REQUIRE([AX_EXT_HAVE_STATIC_LIB_DETECT])
|
||||||
|
+ AX_EXT_HAVE_STATIC_LIB(PCRE2, ${DEFAULT_STATIC_LIB_SEARCH_PATHS}, pcre2 libpcre2-8, pcre2_version)
|
||||||
|
+ if test "x$PCRE2_FOUND" = xyes; then
|
||||||
|
+ HAVE_PCRE2=yes
|
||||||
|
+ else
|
||||||
|
+ HAVE_PCRE2=no
|
||||||
|
+ fi
|
||||||
|
+else
|
||||||
|
+ PKG_CHECK_MODULES(PCRE2, libpcre2-8, HAVE_PCRE2=yes, HAVE_PCRE2=no)
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+AS_IF([test "x$HAVE_PCRE2" = "xyes"], [
|
||||||
|
+ AC_DEFINE([HAVE_PCRE2], [1], [Define this if you have libpcre2-8 on your system])
|
||||||
|
+])
|
||||||
|
+])
|
||||||
|
\ No newline at end of file
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -144,6 +144,7 @@ AIRCRACK_NG_EXT_SCRIPTS
|
||||||
|
AIRCRACK_NG_HWLOC
|
||||||
|
AIRCRACK_NG_PCAP
|
||||||
|
AIRCRACK_NG_PCRE
|
||||||
|
+AIRCRACK_NG_PCRE2
|
||||||
|
AIRCRACK_NG_RFKILL
|
||||||
|
AIRCRACK_NG_SQLITE
|
||||||
|
AIRCRACK_NG_ZLIB
|
||||||
|
@@ -320,6 +321,7 @@ ${PACKAGE} ${VERSION}
|
||||||
|
Jemalloc: ${JEMALLOC}
|
||||||
|
Pcap: ${PCAP_FOUND}
|
||||||
|
Pcre: ${HAVE_PCRE}
|
||||||
|
+ Pcre2: ${HAVE_PCRE2}
|
||||||
|
Sqlite: ${HAVE_SQLITE3}
|
||||||
|
Tcmalloc: ${TCMALLOC}
|
||||||
|
Zlib: ${HAVE_ZLIB}
|
|
@ -0,0 +1,142 @@
|
||||||
|
From 37bc38a1749f61f3e54dbebca7b33df844b6de82 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Fri, 20 Jan 2023 14:53:59 +0100
|
||||||
|
Subject: [PATCH 2/9] airodump-ng: add PCRE2 support
|
||||||
|
|
||||||
|
---
|
||||||
|
src/airodump-ng/airodump-ng.c | 75 +++++++++++++++++++++++++++++++----
|
||||||
|
1 file changed, 67 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/airodump-ng/airodump-ng.c
|
||||||
|
+++ b/src/airodump-ng/airodump-ng.c
|
||||||
|
@@ -68,7 +68,10 @@
|
||||||
|
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+#define PCRE2_CODE_UNIT_WIDTH 8
|
||||||
|
+#include <pcre2.h>
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
#include <pcre.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -150,7 +153,10 @@ static struct local_options
|
||||||
|
unsigned char prev_bssid[6];
|
||||||
|
char ** f_essid;
|
||||||
|
int f_essid_count;
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ pcre2_code * f_essid_regex;
|
||||||
|
+ pcre2_match_data * f_essid_match_data;
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
pcre * f_essid_regex;
|
||||||
|
#endif
|
||||||
|
char * dump_prefix;
|
||||||
|
@@ -784,7 +790,7 @@ static const char usage[] =
|
||||||
|
" --netmask <netmask> : Filter APs by mask\n"
|
||||||
|
" --bssid <bssid> : Filter APs by BSSID\n"
|
||||||
|
" --essid <essid> : Filter APs by ESSID\n"
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
" --essid-regex <regex> : Filter APs by ESSID using a regular\n"
|
||||||
|
" expression\n"
|
||||||
|
#endif
|
||||||
|
@@ -857,7 +863,22 @@ int is_filtered_essid(const uint8_t * es
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ if (lopt.f_essid_regex)
|
||||||
|
+ {
|
||||||
|
+ lopt.f_essid_match_data
|
||||||
|
+ = pcre2_match_data_create_from_pattern(lopt.f_essid_regex, NULL);
|
||||||
|
+
|
||||||
|
+ return pcre2_match(lopt.f_essid_regex,
|
||||||
|
+ (PCRE2_SPTR) essid,
|
||||||
|
+ (int) strnlen((char *) essid, ESSID_LENGTH),
|
||||||
|
+ 0,
|
||||||
|
+ 0,
|
||||||
|
+ lopt.f_essid_match_data,
|
||||||
|
+ 0)
|
||||||
|
+ < 0;
|
||||||
|
+ }
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
if (lopt.f_essid_regex)
|
||||||
|
{
|
||||||
|
return pcre_exec(lopt.f_essid_regex,
|
||||||
|
@@ -5782,7 +5803,10 @@ int main(int argc, char * argv[])
|
||||||
|
int wi_read_failed = 0;
|
||||||
|
int n = 0;
|
||||||
|
int output_format_first_time = 1;
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ int pcreerror;
|
||||||
|
+ PCRE2_SIZE pcreerroffset;
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
const char * pcreerror;
|
||||||
|
int pcreerroffset;
|
||||||
|
#endif
|
||||||
|
@@ -5938,7 +5962,9 @@ int main(int argc, char * argv[])
|
||||||
|
#ifdef CONFIG_LIBNL
|
||||||
|
lopt.htval = CHANNEL_NO_HT;
|
||||||
|
#endif
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ lopt.f_essid_regex = NULL;
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
lopt.f_essid_regex = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -6359,7 +6385,34 @@ int main(int argc, char * argv[])
|
||||||
|
|
||||||
|
case 'R':
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ if (lopt.f_essid_regex != NULL)
|
||||||
|
+ {
|
||||||
|
+ printf("Error: ESSID regular expression already given. "
|
||||||
|
+ "Aborting\n");
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ lopt.f_essid_regex = pcre2_compile((PCRE2_SPTR) optarg,
|
||||||
|
+ PCRE2_ZERO_TERMINATED,
|
||||||
|
+ 0,
|
||||||
|
+ &pcreerror,
|
||||||
|
+ &pcreerroffset,
|
||||||
|
+ NULL);
|
||||||
|
+
|
||||||
|
+ if (lopt.f_essid_regex == NULL)
|
||||||
|
+ {
|
||||||
|
+ PCRE2_UCHAR pcreerrbuffer[256];
|
||||||
|
+ pcre2_get_error_message(
|
||||||
|
+ pcreerror, pcreerrbuffer, sizeof(pcreerrbuffer));
|
||||||
|
+
|
||||||
|
+ printf("Error: regular expression compilation failed at "
|
||||||
|
+ "offset %lu: %s; aborting\n",
|
||||||
|
+ pcreerroffset,
|
||||||
|
+ pcreerrbuffer);
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
if (lopt.f_essid_regex != NULL)
|
||||||
|
{
|
||||||
|
printf("Error: ESSID regular expression already given. "
|
||||||
|
@@ -7297,7 +7350,13 @@ int main(int argc, char * argv[])
|
||||||
|
|
||||||
|
if (lopt.keyout) free(lopt.keyout);
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ if (lopt.f_essid_regex)
|
||||||
|
+ {
|
||||||
|
+ pcre2_match_data_free(lopt.f_essid_match_data);
|
||||||
|
+ pcre2_code_free(lopt.f_essid_regex);
|
||||||
|
+ }
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
if (lopt.f_essid_regex) pcre_free(lopt.f_essid_regex);
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,146 @@
|
||||||
|
From dbc80d96cfba2dab959ab20bf76f8dd4f517bd29 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Fri, 20 Jan 2023 14:55:18 +0100
|
||||||
|
Subject: [PATCH 3/9] besside-ng: add PCRE2 support
|
||||||
|
|
||||||
|
---
|
||||||
|
src/besside-ng/besside-ng.c | 86 ++++++++++++++++++++++++++++++++++---
|
||||||
|
1 file changed, 79 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/besside-ng/besside-ng.c
|
||||||
|
+++ b/src/besside-ng/besside-ng.c
|
||||||
|
@@ -57,7 +57,10 @@
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+#define PCRE2_CODE_UNIT_WIDTH 8
|
||||||
|
+#include <pcre2.h>
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
#include <pcre.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -155,7 +158,10 @@ static struct conf
|
||||||
|
int cf_do_wep;
|
||||||
|
int cf_do_wpa;
|
||||||
|
char * cf_wpa_server;
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ pcre2_code * cf_essid_regex;
|
||||||
|
+ pcre2_match_data * cf_essid_match_data;
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
pcre * cf_essid_regex;
|
||||||
|
#endif
|
||||||
|
} _conf;
|
||||||
|
@@ -1116,7 +1122,31 @@ static void attack_ping(void * a)
|
||||||
|
timer_in(100 * 1000, attack_ping, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+static int is_filtered_essid(char * essid)
|
||||||
|
+{
|
||||||
|
+ REQUIRE(essid != NULL);
|
||||||
|
+
|
||||||
|
+ int ret = 0;
|
||||||
|
+
|
||||||
|
+ if (_conf.cf_essid_regex)
|
||||||
|
+ {
|
||||||
|
+ _conf.cf_essid_match_data
|
||||||
|
+ = pcre2_match_data_create_from_pattern(_conf.cf_essid_regex, NULL);
|
||||||
|
+
|
||||||
|
+ return pcre2_match(_conf.cf_essid_regex,
|
||||||
|
+ (PCRE2_SPTR) essid,
|
||||||
|
+ (int) strnlen((char *) essid, MAX_IE_ELEMENT_SIZE),
|
||||||
|
+ 0,
|
||||||
|
+ 0,
|
||||||
|
+ _conf.cf_essid_match_data,
|
||||||
|
+ 0)
|
||||||
|
+ < 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return (ret);
|
||||||
|
+}
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
static int is_filtered_essid(char * essid)
|
||||||
|
{
|
||||||
|
REQUIRE(essid != NULL);
|
||||||
|
@@ -1148,7 +1178,12 @@ static int should_attack(struct network
|
||||||
|
if (_conf.cf_bssid && memcmp(_conf.cf_bssid, n->n_bssid, 6) != 0)
|
||||||
|
return (0);
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ if (is_filtered_essid(n->n_ssid))
|
||||||
|
+ {
|
||||||
|
+ return (0);
|
||||||
|
+ }
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
if (is_filtered_essid(n->n_ssid))
|
||||||
|
{
|
||||||
|
return (0);
|
||||||
|
@@ -3007,7 +3042,13 @@ static void cleanup(int UNUSED(x))
|
||||||
|
|
||||||
|
print_work();
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ if (_conf.cf_essid_regex)
|
||||||
|
+ {
|
||||||
|
+ pcre2_match_data_free(_conf.cf_essid_match_data);
|
||||||
|
+ pcre2_code_free(_conf.cf_essid_regex);
|
||||||
|
+ }
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
if (_conf.cf_essid_regex) pcre_free(_conf.cf_essid_regex);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -3295,7 +3336,10 @@ static void usage(char * prog)
|
||||||
|
int main(int argc, char * argv[])
|
||||||
|
{
|
||||||
|
int ch, temp;
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ int pcreerror;
|
||||||
|
+ PCRE2_SIZE pcreerroffset;
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
const char * pcreerror;
|
||||||
|
int pcreerroffset;
|
||||||
|
#endif
|
||||||
|
@@ -3349,7 +3393,35 @@ int main(int argc, char * argv[])
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'R':
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+ if (_conf.cf_essid_regex != NULL)
|
||||||
|
+ {
|
||||||
|
+ printf("Error: ESSID regular expression already given. "
|
||||||
|
+ "Aborting\n");
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ _conf.cf_essid_regex = pcre2_compile((PCRE2_SPTR) optarg,
|
||||||
|
+ PCRE2_ZERO_TERMINATED,
|
||||||
|
+ 0,
|
||||||
|
+ &pcreerror,
|
||||||
|
+ &pcreerroffset,
|
||||||
|
+ NULL);
|
||||||
|
+
|
||||||
|
+ if (_conf.cf_essid_regex == NULL)
|
||||||
|
+ {
|
||||||
|
+ PCRE2_UCHAR pcreerrbuffer[256];
|
||||||
|
+ pcre2_get_error_message(
|
||||||
|
+ pcreerror, pcreerrbuffer, sizeof(pcreerrbuffer));
|
||||||
|
+
|
||||||
|
+ printf("Error: regular expression compilation failed at "
|
||||||
|
+ "offset %lu: %s; aborting\n",
|
||||||
|
+ pcreerroffset,
|
||||||
|
+ pcreerrbuffer);
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
+ break;
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
if (_conf.cf_essid_regex != NULL)
|
||||||
|
{
|
||||||
|
printf("Error: ESSID regular expression already given. "
|
|
@ -0,0 +1,29 @@
|
||||||
|
From ca05a44c449be3c433ea67c04f11d544ab62395f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Fri, 20 Jan 2023 14:57:16 +0100
|
||||||
|
Subject: [PATCH 4/9] makefile: add PCRE2 to linker flags
|
||||||
|
|
||||||
|
---
|
||||||
|
src/Makefile.inc | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/Makefile.inc
|
||||||
|
+++ b/src/Makefile.inc
|
||||||
|
@@ -130,7 +130,7 @@ aireplay_ng_LDADD = $(COMMON_LDADD) $(L
|
||||||
|
airodump_ng_SOURCES = $(SRC_ADU) $(SRC_DWRITE)
|
||||||
|
airodump_ng_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
airodump_ng_CPPFLAGS = $(AM_CPPFLAGS) -I$(abs_srcdir)/src/airodump-ng
|
||||||
|
-airodump_ng_LDADD = $(COMMON_LDADD) $(PCRE_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(LIBAIRCRACK_CE_WEP_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
+airodump_ng_LDADD = $(COMMON_LDADD) $(PCRE_LIBS) $(PCRE2_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(LIBAIRCRACK_CE_WEP_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
airserv_ng_SOURCES = $(SRC_AS)
|
||||||
|
airserv_ng_CFLAGS = $(COMMON_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
@@ -164,7 +164,7 @@ buddy_ng_LDADD = $(COMMON_LDADD) $(LIBA
|
||||||
|
|
||||||
|
besside_ng_SOURCES = $(SRC_BS)
|
||||||
|
besside_ng_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
-besside_ng_LDADD = $(COMMON_LDADD) $(PCRE_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(LIBPTW_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
+besside_ng_LDADD = $(COMMON_LDADD) $(PCRE_LIBS) $(PCRE2_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(LIBPTW_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
besside_ng_crawler_SOURCES = $(SRC_BC)
|
||||||
|
besside_ng_crawler_CFLAGS = $(COMMON_CFLAGS) $(PCAP_CFLAGS)
|
|
@ -0,0 +1,21 @@
|
||||||
|
From fa532b05d48e856c774837b83a3323dafcc8c33e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Fri, 20 Jan 2023 14:58:35 +0100
|
||||||
|
Subject: [PATCH 5/9] airodump-ng/dump_write: remove unused PCRE include
|
||||||
|
|
||||||
|
---
|
||||||
|
src/airodump-ng/dump_write.c | 3 ---
|
||||||
|
1 file changed, 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/airodump-ng/dump_write.c
|
||||||
|
+++ b/src/airodump-ng/dump_write.c
|
||||||
|
@@ -45,9 +45,6 @@
|
||||||
|
#include <unistd.h> // ftruncate
|
||||||
|
#include <sys/types.h> // ftruncate
|
||||||
|
#include <sys/time.h>
|
||||||
|
-#ifdef HAVE_PCRE
|
||||||
|
-#include <pcre.h>
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
#include "aircrack-ng/defs.h"
|
||||||
|
#include "airodump-ng.h"
|
|
@ -0,0 +1,114 @@
|
||||||
|
From bac9b5fed2bb29e13326c90d7c12a6936fe9f04b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Sat, 21 Jan 2023 19:29:58 +0100
|
||||||
|
Subject: [PATCH 7/9] compat-pcre: add compat-type PCRE header
|
||||||
|
|
||||||
|
---
|
||||||
|
include/Makefile.inc | 1 +
|
||||||
|
include/aircrack-ng/pcre/compat-pcre.h | 90 ++++++++++++++++++++++++++
|
||||||
|
2 files changed, 91 insertions(+)
|
||||||
|
create mode 100644 include/aircrack-ng/pcre/compat-pcre.h
|
||||||
|
|
||||||
|
--- a/include/Makefile.inc
|
||||||
|
+++ b/include/Makefile.inc
|
||||||
|
@@ -71,6 +71,7 @@ nobase_aircrack_HEADERS = %D%/aircrack-
|
||||||
|
%D%/aircrack-ng/osdep/network.h \
|
||||||
|
%D%/aircrack-ng/osdep/osdep.h \
|
||||||
|
%D%/aircrack-ng/osdep/packed.h \
|
||||||
|
+ %D%/aircrack-ng/pcre/compat-pcre.h \
|
||||||
|
%D%/aircrack-ng/ptw/aircrack-ptw-lib.h \
|
||||||
|
%D%/aircrack-ng/support/common.h \
|
||||||
|
%D%/aircrack-ng/support/communications.h \
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/aircrack-ng/pcre/compat-pcre.h
|
||||||
|
@@ -0,0 +1,90 @@
|
||||||
|
+/*
|
||||||
|
+* Copyright (C) 2023 Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
+*
|
||||||
|
+* This program is free software; you can redistribute it and/or modify
|
||||||
|
+* it under the terms of the GNU General Public License as published by
|
||||||
|
+* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
+* (at your option) any later version.
|
||||||
|
+*
|
||||||
|
+* This program is distributed in the hope that it will be useful,
|
||||||
|
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+* GNU General Public License for more details.
|
||||||
|
+*
|
||||||
|
+* You should have received a copy of the GNU General Public License
|
||||||
|
+* along with this program; if not, write to the Free Software
|
||||||
|
+* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
+*
|
||||||
|
+*
|
||||||
|
+* In addition, as a special exception, the copyright holders give
|
||||||
|
+* permission to link the code of portions of this program with the
|
||||||
|
+* OpenSSL library under certain conditions as described in each
|
||||||
|
+* individual source file, and distribute linked combinations
|
||||||
|
+* including the two.
|
||||||
|
+* You must obey the GNU General Public License in all respects
|
||||||
|
+* for all of the code used other than OpenSSL. * If you modify
|
||||||
|
+* file(s) with this exception, you may extend this exception to your
|
||||||
|
+* version of the file(s), but you are not obligated to do so. * If you
|
||||||
|
+* do not wish to do so, delete this exception statement from your
|
||||||
|
+* version. * If you delete this exception statement from all source
|
||||||
|
+* files in the program, then also delete it here.
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+#ifndef AIRCRACK_NG_COMPAT_PCRE_H
|
||||||
|
+#define AIRCRACK_NG_COMPAT_PCRE_H
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+#define PCRE2_CODE_UNIT_WIDTH 8
|
||||||
|
+#include <pcre2.h>
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
+#include <pcre.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+#define COMPAT_PCRE_COMPILE(pattern, pcreerror, pcreerroffset) \
|
||||||
|
+ pcre2_compile((PCRE2_SPTR) (pattern), \
|
||||||
|
+ PCRE2_ZERO_TERMINATED, \
|
||||||
|
+ 0, \
|
||||||
|
+ (pcreerror), \
|
||||||
|
+ (pcreerroffset), \
|
||||||
|
+ NULL)
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
+#define COMPAT_PCRE_COMPILE(pattern, pcreerror, pcreerroffset) \
|
||||||
|
+ pcre_compile((pattern), 0, (pcreerror), (pcreerroffset), NULL)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+#define COMPAT_PCRE_MATCH(regex, essid, length, match_data) \
|
||||||
|
+ pcre2_match((regex), \
|
||||||
|
+ (PCRE2_SPTR) (essid), \
|
||||||
|
+ (int) strnlen((char *) (essid), (length)), \
|
||||||
|
+ 0, \
|
||||||
|
+ 0, \
|
||||||
|
+ (match_data), \
|
||||||
|
+ 0)
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
+#define COMPAT_PCRE_MATCH(regex, essid, length, match_data) \
|
||||||
|
+ pcre_exec((regex), \
|
||||||
|
+ NULL, \
|
||||||
|
+ (char *) (essid), \
|
||||||
|
+ strnlen((char *) (essid), (length)), \
|
||||||
|
+ 0, \
|
||||||
|
+ 0, \
|
||||||
|
+ NULL, \
|
||||||
|
+ 0)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
+#define COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerr) \
|
||||||
|
+ printf("Error: regular expression compilation failed at " \
|
||||||
|
+ "offset %zu: %s; aborting\n", \
|
||||||
|
+ (pcreerroffset), \
|
||||||
|
+ (pcreerr))
|
||||||
|
+#elif defined HAVE_PCRE
|
||||||
|
+#define COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerrorbuf) \
|
||||||
|
+ printf("Error: regular expression compilation failed at " \
|
||||||
|
+ "offset %d: %s; aborting\n", \
|
||||||
|
+ (pcreerroffset), \
|
||||||
|
+ (pcreerrorbuf))
|
||||||
|
+#endif
|
||||||
|
+#endif //AIRCRACK_NG_COMPAT_PCRE_H
|
|
@ -0,0 +1,146 @@
|
||||||
|
From e7ace80dbcfd2feecbbc6263ce59ce20acdafca0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Sat, 21 Jan 2023 19:31:07 +0100
|
||||||
|
Subject: [PATCH 8/9] airodump-ng: utilize compat-pcre
|
||||||
|
|
||||||
|
---
|
||||||
|
src/airodump-ng/airodump-ng.c | 80 +++++++++--------------------------
|
||||||
|
1 file changed, 19 insertions(+), 61 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/airodump-ng/airodump-ng.c
|
||||||
|
+++ b/src/airodump-ng/airodump-ng.c
|
||||||
|
@@ -68,13 +68,7 @@
|
||||||
|
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
-#define PCRE2_CODE_UNIT_WIDTH 8
|
||||||
|
-#include <pcre2.h>
|
||||||
|
-#elif defined HAVE_PCRE
|
||||||
|
-#include <pcre.h>
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
+#include "aircrack-ng/pcre/compat-pcre.h"
|
||||||
|
#include "aircrack-ng/defs.h"
|
||||||
|
#include "aircrack-ng/version.h"
|
||||||
|
#include "aircrack-ng/support/pcap_local.h"
|
||||||
|
@@ -863,33 +857,22 @@ int is_filtered_essid(const uint8_t * es
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
if (lopt.f_essid_regex)
|
||||||
|
{
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
lopt.f_essid_match_data
|
||||||
|
= pcre2_match_data_create_from_pattern(lopt.f_essid_regex, NULL);
|
||||||
|
|
||||||
|
- return pcre2_match(lopt.f_essid_regex,
|
||||||
|
- (PCRE2_SPTR) essid,
|
||||||
|
- (int) strnlen((char *) essid, ESSID_LENGTH),
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- lopt.f_essid_match_data,
|
||||||
|
- 0)
|
||||||
|
+ return COMPAT_PCRE_MATCH(lopt.f_essid_regex,
|
||||||
|
+ essid,
|
||||||
|
+ ESSID_LENGTH,
|
||||||
|
+ lopt.f_essid_match_data)
|
||||||
|
< 0;
|
||||||
|
- }
|
||||||
|
#elif defined HAVE_PCRE
|
||||||
|
- if (lopt.f_essid_regex)
|
||||||
|
- {
|
||||||
|
- return pcre_exec(lopt.f_essid_regex,
|
||||||
|
- NULL,
|
||||||
|
- (char *) essid,
|
||||||
|
- (int) strnlen((char *) essid, ESSID_LENGTH),
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- NULL,
|
||||||
|
- 0)
|
||||||
|
+ return COMPAT_PCRE_MATCH(lopt.f_essid_regex, essid, ESSID_LENGTH, NULL)
|
||||||
|
< 0;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -5805,6 +5788,7 @@ int main(int argc, char * argv[])
|
||||||
|
int output_format_first_time = 1;
|
||||||
|
#ifdef HAVE_PCRE2
|
||||||
|
int pcreerror;
|
||||||
|
+ PCRE2_UCHAR pcreerrorbuf[256];
|
||||||
|
PCRE2_SIZE pcreerroffset;
|
||||||
|
#elif defined HAVE_PCRE
|
||||||
|
const char * pcreerror;
|
||||||
|
@@ -5962,9 +5946,7 @@ int main(int argc, char * argv[])
|
||||||
|
#ifdef CONFIG_LIBNL
|
||||||
|
lopt.htval = CHANNEL_NO_HT;
|
||||||
|
#endif
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
- lopt.f_essid_regex = NULL;
|
||||||
|
-#elif defined HAVE_PCRE
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
lopt.f_essid_regex = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -6385,7 +6367,7 @@ int main(int argc, char * argv[])
|
||||||
|
|
||||||
|
case 'R':
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
if (lopt.f_essid_regex != NULL)
|
||||||
|
{
|
||||||
|
printf("Error: ESSID regular expression already given. "
|
||||||
|
@@ -6393,42 +6375,18 @@ int main(int argc, char * argv[])
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
- lopt.f_essid_regex = pcre2_compile((PCRE2_SPTR) optarg,
|
||||||
|
- PCRE2_ZERO_TERMINATED,
|
||||||
|
- 0,
|
||||||
|
- &pcreerror,
|
||||||
|
- &pcreerroffset,
|
||||||
|
- NULL);
|
||||||
|
+ lopt.f_essid_regex
|
||||||
|
+ = COMPAT_PCRE_COMPILE(optarg, &pcreerror, &pcreerroffset);
|
||||||
|
|
||||||
|
if (lopt.f_essid_regex == NULL)
|
||||||
|
{
|
||||||
|
- PCRE2_UCHAR pcreerrbuffer[256];
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
pcre2_get_error_message(
|
||||||
|
- pcreerror, pcreerrbuffer, sizeof(pcreerrbuffer));
|
||||||
|
-
|
||||||
|
- printf("Error: regular expression compilation failed at "
|
||||||
|
- "offset %lu: %s; aborting\n",
|
||||||
|
- pcreerroffset,
|
||||||
|
- pcreerrbuffer);
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
+ pcreerror, pcreerrorbuf, sizeof(pcreerrorbuf));
|
||||||
|
+ COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerrorbuf);
|
||||||
|
#elif defined HAVE_PCRE
|
||||||
|
- if (lopt.f_essid_regex != NULL)
|
||||||
|
- {
|
||||||
|
- printf("Error: ESSID regular expression already given. "
|
||||||
|
- "Aborting\n");
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- lopt.f_essid_regex
|
||||||
|
- = pcre_compile(optarg, 0, &pcreerror, &pcreerroffset, NULL);
|
||||||
|
-
|
||||||
|
- if (lopt.f_essid_regex == NULL)
|
||||||
|
- {
|
||||||
|
- printf("Error: regular expression compilation failed at "
|
||||||
|
- "offset %d: %s; aborting\n",
|
||||||
|
- pcreerroffset,
|
||||||
|
- pcreerror);
|
||||||
|
+ COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerror);
|
||||||
|
+#endif
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
#else
|
|
@ -0,0 +1,165 @@
|
||||||
|
From d7eb251f945524b419e8c90dd54c640d9922e5d5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Sat, 21 Jan 2023 19:31:31 +0100
|
||||||
|
Subject: [PATCH 9/9] besside-ng: utilize compat-pcre
|
||||||
|
|
||||||
|
---
|
||||||
|
src/besside-ng/besside-ng.c | 94 ++++++++-----------------------------
|
||||||
|
1 file changed, 20 insertions(+), 74 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/besside-ng/besside-ng.c
|
||||||
|
+++ b/src/besside-ng/besside-ng.c
|
||||||
|
@@ -57,13 +57,7 @@
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
-#define PCRE2_CODE_UNIT_WIDTH 8
|
||||||
|
-#include <pcre2.h>
|
||||||
|
-#elif defined HAVE_PCRE
|
||||||
|
-#include <pcre.h>
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
+#include "aircrack-ng/pcre/compat-pcre.h"
|
||||||
|
#include "aircrack-ng/defs.h"
|
||||||
|
#include "aircrack-ng/aircrack-ng.h"
|
||||||
|
#include "aircrack-ng/version.h"
|
||||||
|
@@ -1122,7 +1116,7 @@ static void attack_ping(void * a)
|
||||||
|
timer_in(100 * 1000, attack_ping, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
static int is_filtered_essid(char * essid)
|
||||||
|
{
|
||||||
|
REQUIRE(essid != NULL);
|
||||||
|
@@ -1131,39 +1125,20 @@ static int is_filtered_essid(char * essi
|
||||||
|
|
||||||
|
if (_conf.cf_essid_regex)
|
||||||
|
{
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
_conf.cf_essid_match_data
|
||||||
|
= pcre2_match_data_create_from_pattern(_conf.cf_essid_regex, NULL);
|
||||||
|
|
||||||
|
- return pcre2_match(_conf.cf_essid_regex,
|
||||||
|
- (PCRE2_SPTR) essid,
|
||||||
|
- (int) strnlen((char *) essid, MAX_IE_ELEMENT_SIZE),
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- _conf.cf_essid_match_data,
|
||||||
|
- 0)
|
||||||
|
+ return COMPAT_PCRE_MATCH(_conf.cf_essid_regex,
|
||||||
|
+ essid,
|
||||||
|
+ MAX_IE_ELEMENT_SIZE,
|
||||||
|
+ _conf.cf_essid_match_data)
|
||||||
|
< 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return (ret);
|
||||||
|
-}
|
||||||
|
#elif defined HAVE_PCRE
|
||||||
|
-static int is_filtered_essid(char * essid)
|
||||||
|
-{
|
||||||
|
- REQUIRE(essid != NULL);
|
||||||
|
-
|
||||||
|
- int ret = 0;
|
||||||
|
-
|
||||||
|
- if (_conf.cf_essid_regex)
|
||||||
|
- {
|
||||||
|
- return pcre_exec(_conf.cf_essid_regex,
|
||||||
|
- NULL,
|
||||||
|
- (char *) essid,
|
||||||
|
- strnlen((char *) essid, MAX_IE_ELEMENT_SIZE),
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- NULL,
|
||||||
|
- 0)
|
||||||
|
+ return COMPAT_PCRE_MATCH(
|
||||||
|
+ _conf.cf_essid_regex, essid, MAX_IE_ELEMENT_SIZE, NULL)
|
||||||
|
< 0;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return (ret);
|
||||||
|
@@ -1178,12 +1153,7 @@ static int should_attack(struct network
|
||||||
|
if (_conf.cf_bssid && memcmp(_conf.cf_bssid, n->n_bssid, 6) != 0)
|
||||||
|
return (0);
|
||||||
|
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
- if (is_filtered_essid(n->n_ssid))
|
||||||
|
- {
|
||||||
|
- return (0);
|
||||||
|
- }
|
||||||
|
-#elif defined HAVE_PCRE
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
if (is_filtered_essid(n->n_ssid))
|
||||||
|
{
|
||||||
|
return (0);
|
||||||
|
@@ -3338,6 +3308,7 @@ int main(int argc, char * argv[])
|
||||||
|
int ch, temp;
|
||||||
|
#ifdef HAVE_PCRE2
|
||||||
|
int pcreerror;
|
||||||
|
+ PCRE2_UCHAR pcreerrorbuf[256];
|
||||||
|
PCRE2_SIZE pcreerroffset;
|
||||||
|
#elif defined HAVE_PCRE
|
||||||
|
const char * pcreerror;
|
||||||
|
@@ -3393,7 +3364,7 @@ int main(int argc, char * argv[])
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'R':
|
||||||
|
-#ifdef HAVE_PCRE2
|
||||||
|
+#if defined HAVE_PCRE2 || defined HAVE_PCRE
|
||||||
|
if (_conf.cf_essid_regex != NULL)
|
||||||
|
{
|
||||||
|
printf("Error: ESSID regular expression already given. "
|
||||||
|
@@ -3401,43 +3372,18 @@ int main(int argc, char * argv[])
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
- _conf.cf_essid_regex = pcre2_compile((PCRE2_SPTR) optarg,
|
||||||
|
- PCRE2_ZERO_TERMINATED,
|
||||||
|
- 0,
|
||||||
|
- &pcreerror,
|
||||||
|
- &pcreerroffset,
|
||||||
|
- NULL);
|
||||||
|
+ _conf.cf_essid_regex
|
||||||
|
+ = COMPAT_PCRE_COMPILE(optarg, &pcreerror, &pcreerroffset);
|
||||||
|
|
||||||
|
if (_conf.cf_essid_regex == NULL)
|
||||||
|
{
|
||||||
|
- PCRE2_UCHAR pcreerrbuffer[256];
|
||||||
|
+#ifdef HAVE_PCRE2
|
||||||
|
pcre2_get_error_message(
|
||||||
|
- pcreerror, pcreerrbuffer, sizeof(pcreerrbuffer));
|
||||||
|
-
|
||||||
|
- printf("Error: regular expression compilation failed at "
|
||||||
|
- "offset %lu: %s; aborting\n",
|
||||||
|
- pcreerroffset,
|
||||||
|
- pcreerrbuffer);
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
- break;
|
||||||
|
+ pcreerror, pcreerrorbuf, sizeof(pcreerrorbuf));
|
||||||
|
+ COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerrorbuf);
|
||||||
|
#elif defined HAVE_PCRE
|
||||||
|
- if (_conf.cf_essid_regex != NULL)
|
||||||
|
- {
|
||||||
|
- printf("Error: ESSID regular expression already given. "
|
||||||
|
- "Aborting\n");
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- _conf.cf_essid_regex
|
||||||
|
- = pcre_compile(optarg, 0, &pcreerror, &pcreerroffset, NULL);
|
||||||
|
-
|
||||||
|
- if (_conf.cf_essid_regex == NULL)
|
||||||
|
- {
|
||||||
|
- printf("Error: regular expression compilation failed at "
|
||||||
|
- "offset %d: %s; aborting\n",
|
||||||
|
- pcreerroffset,
|
||||||
|
- pcreerror);
|
||||||
|
+ COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerror);
|
||||||
|
+#endif
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
break;
|
|
@ -0,0 +1,29 @@
|
||||||
|
From 8c6a4f171b7d97a294590fab9dc2069b149b9b36 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Mon, 23 Jan 2023 10:42:39 +0100
|
||||||
|
Subject: [PATCH 2/6] src/makefile: add PCRE2_CFLAGS to airodump and besside
|
||||||
|
|
||||||
|
---
|
||||||
|
src/Makefile.inc | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/Makefile.inc
|
||||||
|
+++ b/src/Makefile.inc
|
||||||
|
@@ -128,7 +128,7 @@ aireplay_ng_CFLAGS = $(COMMON_CFLAGS) $(
|
||||||
|
aireplay_ng_LDADD = $(COMMON_LDADD) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
airodump_ng_SOURCES = $(SRC_ADU) $(SRC_DWRITE)
|
||||||
|
-airodump_ng_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
+airodump_ng_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(PCRE2_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
airodump_ng_CPPFLAGS = $(AM_CPPFLAGS) -I$(abs_srcdir)/src/airodump-ng
|
||||||
|
airodump_ng_LDADD = $(COMMON_LDADD) $(PCRE_LIBS) $(PCRE2_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(LIBAIRCRACK_CE_WEP_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
@@ -163,7 +163,7 @@ buddy_ng_CPPFLAGS = $(AM_CPPFLAGS) -I$(a
|
||||||
|
buddy_ng_LDADD = $(COMMON_LDADD) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
besside_ng_SOURCES = $(SRC_BS)
|
||||||
|
-besside_ng_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
+besside_ng_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(PCRE2_CFLAGS) $(LIBNL_CFLAGS)
|
||||||
|
besside_ng_LDADD = $(COMMON_LDADD) $(PCRE_LIBS) $(PCRE2_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(LIBACCRYPTO_LIBS) $(LIBPTW_LIBS) $(AIRPCAP_LIBS) $(LIBAIRCRACK_LIBS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
besside_ng_crawler_SOURCES = $(SRC_BC)
|
|
@ -0,0 +1,37 @@
|
||||||
|
From 0be8f0d7d8e4a09ea5687bcec6690876b4161a0e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Mon, 23 Jan 2023 10:46:26 +0100
|
||||||
|
Subject: [PATCH 3/6] lib/makefile: add PCRE2 to libaccrypto and libaircrack
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/Makefile.inc | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/lib/Makefile.inc
|
||||||
|
+++ b/lib/Makefile.inc
|
||||||
|
@@ -65,8 +65,8 @@ SRC_CRYPTO += %D%/crypto/sha1-git.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
libaccrypto_la_SOURCES = $(SRC_CRYPTO)
|
||||||
|
-libaccrypto_la_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS)
|
||||||
|
-libaccrypto_la_LIBADD = $(PCRE_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(CRYPTO_LDFLAGS) $(CRYPTO_LIBS)
|
||||||
|
+libaccrypto_la_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(PCRE2_CFLAGS)
|
||||||
|
+libaccrypto_la_LIBADD = $(PCRE_LIBS) $(PCRE2_LIBS) $(LIBAIRCRACK_OSDEP_LIBS) $(CRYPTO_LDFLAGS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
libcowpatty_la_SOURCES = $(SRC_COW)
|
||||||
|
libcowpatty_la_CFLAGS = $(COMMON_CFLAGS) $(LIBCOW_CFLAGS)
|
||||||
|
@@ -121,12 +121,12 @@ SRC_LIBAC += %D%/libac/support/strlcpy.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
libaircrack_la_SOURCES = $(SRC_LIBAC) $(TRAMPOLINE) $(CPUSET)
|
||||||
|
-libaircrack_la_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) \
|
||||||
|
+libaircrack_la_CFLAGS = $(COMMON_CFLAGS) $(PCRE_CFLAGS) $(PCRE2_CFLAGS) \
|
||||||
|
"-DLIBAIRCRACK_CE_WPA_PATH=\"$(LIBAIRCRACK_CE_WPA_PATH)\"" \
|
||||||
|
"-DABS_TOP_SRCDIR=\"$(abs_top_srcdir)\"" \
|
||||||
|
"-DABS_TOP_BUILDDIR=\"$(abs_top_builddir)\"" \
|
||||||
|
"-DLIBDIR=\"$(libdir)\""
|
||||||
|
-libaircrack_la_LIBADD = $(COMMON_LDADD) $(LIBAIRCRACK_OSDEP_LIBS) $(PCRE_LIBS) $(CRYPTO_LDFLAGS) $(CRYPTO_LIBS)
|
||||||
|
+libaircrack_la_LIBADD = $(COMMON_LDADD) $(LIBAIRCRACK_OSDEP_LIBS) $(PCRE_LIBS) $(PCRE2_LIBS) $(CRYPTO_LDFLAGS) $(CRYPTO_LIBS)
|
||||||
|
|
||||||
|
if CYGWIN
|
||||||
|
libaircrack_la_LIBADD += -lshlwapi
|
|
@ -0,0 +1,132 @@
|
||||||
|
From b381ef3f6b6cc83a4aa016f4c0aebb58fcffcf3f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
Date: Mon, 23 Jan 2023 16:58:38 +0100
|
||||||
|
Subject: [PATCH] autotools: indicate if PCRE or PCRE2 is being used
|
||||||
|
|
||||||
|
---
|
||||||
|
build/m4/aircrack_ng_pcre.m4 | 28 ++++++++++++++--
|
||||||
|
build/m4/aircrack_ng_pcre2.m4 | 61 -----------------------------------
|
||||||
|
configure.ac | 3 +-
|
||||||
|
3 files changed, 26 insertions(+), 66 deletions(-)
|
||||||
|
delete mode 100644 build/m4/aircrack_ng_pcre2.m4
|
||||||
|
|
||||||
|
--- a/build/m4/aircrack_ng_pcre.m4
|
||||||
|
+++ b/build/m4/aircrack_ng_pcre.m4
|
||||||
|
@@ -55,7 +55,29 @@ else
|
||||||
|
PKG_CHECK_MODULES(PCRE, libpcre, HAVE_PCRE=yes, HAVE_PCRE=no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
-AS_IF([test "x$HAVE_PCRE" = "xyes"], [
|
||||||
|
+AC_ARG_ENABLE(static-pcre2,
|
||||||
|
+ AS_HELP_STRING([--enable-static-pcre2],
|
||||||
|
+ [Enable statically linked PCRE2 libpcre2-8.]),
|
||||||
|
+ [static_pcre2=$enableval], [static_pcre2=no])
|
||||||
|
+
|
||||||
|
+if test "x$static_pcre2" != "xno"; then
|
||||||
|
+ AC_REQUIRE([AX_EXT_HAVE_STATIC_LIB_DETECT])
|
||||||
|
+ AX_EXT_HAVE_STATIC_LIB(PCRE2, ${DEFAULT_STATIC_LIB_SEARCH_PATHS}, pcre2 libpcre2-8, pcre2_version)
|
||||||
|
+ if test "x$PCRE2_FOUND" = xyes; then
|
||||||
|
+ HAVE_PCRE2=yes
|
||||||
|
+ else
|
||||||
|
+ HAVE_PCRE2=no
|
||||||
|
+ fi
|
||||||
|
+else
|
||||||
|
+ PKG_CHECK_MODULES(PCRE2, libpcre2-8, HAVE_PCRE2=yes, HAVE_PCRE2=no)
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if test "x$HAVE_PCRE" = "xyes" && test "x$HAVE_PCRE2" = "xyes"; then
|
||||||
|
+ AC_DEFINE([HAVE_PCRE2], [1], [Define this if you have libpcre2-8 on your system])
|
||||||
|
+ PCRE2_NOTE="(Pcre and Pcre2 found, using Pcre2)"
|
||||||
|
+elif test "x$HAVE_PCRE" = "xyes"; then
|
||||||
|
AC_DEFINE([HAVE_PCRE], [1], [Define this if you have libpcre on your system])
|
||||||
|
-])
|
||||||
|
-])
|
||||||
|
+elif test "x$HAVE_PCRE2" = "xyes"; then
|
||||||
|
+ AC_DEFINE([HAVE_PCRE2], [1], [Define this if you have libpcre2-8 on your system])
|
||||||
|
+fi
|
||||||
|
+])
|
||||||
|
\ No newline at end of file
|
||||||
|
--- a/build/m4/aircrack_ng_pcre2.m4
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,61 +0,0 @@
|
||||||
|
-dnl Aircrack-ng
|
||||||
|
-dnl
|
||||||
|
-dnl Copyright (C) 2023 Andras Gemes <andrasgemes@outlook.com>
|
||||||
|
-dnl
|
||||||
|
-dnl Autotool support was written by: Joseph Benden <joe@benden.us>
|
||||||
|
-dnl
|
||||||
|
-dnl This program is free software; you can redistribute it and/or modify
|
||||||
|
-dnl it under the terms of the GNU General Public License as published by
|
||||||
|
-dnl the Free Software Foundation; either version 2 of the License, or
|
||||||
|
-dnl (at your option) any later version.
|
||||||
|
-dnl
|
||||||
|
-dnl This program is distributed in the hope that it will be useful,
|
||||||
|
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-dnl GNU General Public License for more details.
|
||||||
|
-dnl
|
||||||
|
-dnl You should have received a copy of the GNU General Public License
|
||||||
|
-dnl along with this program; if not, write to the Free Software
|
||||||
|
-dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
-dnl
|
||||||
|
-dnl In addition, as a special exception, the copyright holders give
|
||||||
|
-dnl permission to link the code of portions of this program with the
|
||||||
|
-dnl OpenSSL library under certain conditions as described in each
|
||||||
|
-dnl individual source file, and distribute linked combinations
|
||||||
|
-dnl including the two.
|
||||||
|
-dnl
|
||||||
|
-dnl You must obey the GNU General Public License in all respects
|
||||||
|
-dnl for all of the code used other than OpenSSL.
|
||||||
|
-dnl
|
||||||
|
-dnl If you modify file(s) with this exception, you may extend this
|
||||||
|
-dnl exception to your dnl version of the file(s), but you are not obligated
|
||||||
|
-dnl to do so.
|
||||||
|
-dnl
|
||||||
|
-dnl If you dnl do not wish to do so, delete this exception statement from your
|
||||||
|
-dnl version.
|
||||||
|
-dnl
|
||||||
|
-dnl If you delete this exception statement from all source files in the
|
||||||
|
-dnl program, then also delete it here.
|
||||||
|
-
|
||||||
|
-AC_DEFUN([AIRCRACK_NG_PCRE2], [
|
||||||
|
-AC_ARG_ENABLE(static-pcre2,
|
||||||
|
- AS_HELP_STRING([--enable-static-pcre2],
|
||||||
|
- [Enable statically linked PCRE2 libpcre2-8.]),
|
||||||
|
- [static_pcre2=$enableval], [static_pcre2=no])
|
||||||
|
-
|
||||||
|
-if test "x$static_pcre2" != "xno"; then
|
||||||
|
- AC_REQUIRE([AX_EXT_HAVE_STATIC_LIB_DETECT])
|
||||||
|
- AX_EXT_HAVE_STATIC_LIB(PCRE2, ${DEFAULT_STATIC_LIB_SEARCH_PATHS}, pcre2 libpcre2-8, pcre2_version)
|
||||||
|
- if test "x$PCRE2_FOUND" = xyes; then
|
||||||
|
- HAVE_PCRE2=yes
|
||||||
|
- else
|
||||||
|
- HAVE_PCRE2=no
|
||||||
|
- fi
|
||||||
|
-else
|
||||||
|
- PKG_CHECK_MODULES(PCRE2, libpcre2-8, HAVE_PCRE2=yes, HAVE_PCRE2=no)
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-AS_IF([test "x$HAVE_PCRE2" = "xyes"], [
|
||||||
|
- AC_DEFINE([HAVE_PCRE2], [1], [Define this if you have libpcre2-8 on your system])
|
||||||
|
-])
|
||||||
|
-])
|
||||||
|
\ No newline at end of file
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -144,7 +144,6 @@ AIRCRACK_NG_EXT_SCRIPTS
|
||||||
|
AIRCRACK_NG_HWLOC
|
||||||
|
AIRCRACK_NG_PCAP
|
||||||
|
AIRCRACK_NG_PCRE
|
||||||
|
-AIRCRACK_NG_PCRE2
|
||||||
|
AIRCRACK_NG_RFKILL
|
||||||
|
AIRCRACK_NG_SQLITE
|
||||||
|
AIRCRACK_NG_ZLIB
|
||||||
|
@@ -321,7 +320,7 @@ ${PACKAGE} ${VERSION}
|
||||||
|
Jemalloc: ${JEMALLOC}
|
||||||
|
Pcap: ${PCAP_FOUND}
|
||||||
|
Pcre: ${HAVE_PCRE}
|
||||||
|
- Pcre2: ${HAVE_PCRE2}
|
||||||
|
+ Pcre2: ${HAVE_PCRE2} ${PCRE2_NOTE}
|
||||||
|
Sqlite: ${HAVE_SQLITE3}
|
||||||
|
Tcmalloc: ${TCMALLOC}
|
||||||
|
Zlib: ${HAVE_ZLIB}
|
|
@ -0,0 +1,39 @@
|
||||||
|
From b8d0b8cb6caa6940443b3e6ca32efc78d0c9d00e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||||
|
Date: Sun, 1 Oct 2023 00:32:16 +0200
|
||||||
|
Subject: [PATCH] autotools: reset PCRE CFLAGS/LIBS with both PCRE and PCRE2
|
||||||
|
present
|
||||||
|
|
||||||
|
Commit b381ef3f6b6c ("autotools: indicate if PCRE or PCRE2 is being
|
||||||
|
used") fixed a case where both pcre and pcre2 library are detected and
|
||||||
|
put a preference on using pcre2.
|
||||||
|
|
||||||
|
Although the commit fix this corner case, there is still a latent
|
||||||
|
problem with trying to link/include both library. This is caused by the
|
||||||
|
fact that in the Makefile.inc for src and lib, we include both
|
||||||
|
PCRE_CFLAGS and PCRE2_CFLAGS and PCRE_LIBS and PCRE2_LIBS for each
|
||||||
|
tool/lib.
|
||||||
|
|
||||||
|
To handle this and not bloat the Makefile with additional condition,
|
||||||
|
simply reset the PCRE_CFLAGS and PCRE_LIBS in case where we detect both
|
||||||
|
library and we prefer to use pcre2.
|
||||||
|
|
||||||
|
Fixes: b381ef3f6b6c ("autotools: indicate if PCRE or PCRE2 is being used")
|
||||||
|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||||
|
---
|
||||||
|
build/m4/aircrack_ng_pcre.m4 | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
--- a/build/m4/aircrack_ng_pcre.m4
|
||||||
|
+++ b/build/m4/aircrack_ng_pcre.m4
|
||||||
|
@@ -75,6 +75,10 @@ fi
|
||||||
|
if test "x$HAVE_PCRE" = "xyes" && test "x$HAVE_PCRE2" = "xyes"; then
|
||||||
|
AC_DEFINE([HAVE_PCRE2], [1], [Define this if you have libpcre2-8 on your system])
|
||||||
|
PCRE2_NOTE="(Pcre and Pcre2 found, using Pcre2)"
|
||||||
|
+ # Reset PCRE cflags and libs variables as we include both PCRE and PCRE2 in Makefile.inc
|
||||||
|
+ # and would result in trying to link/include both library.
|
||||||
|
+ PCRE_CFLAGS=""
|
||||||
|
+ PCRE_LIBS=""
|
||||||
|
elif test "x$HAVE_PCRE" = "xyes"; then
|
||||||
|
AC_DEFINE([HAVE_PCRE], [1], [Define this if you have libpcre on your system])
|
||||||
|
elif test "x$HAVE_PCRE2" = "xyes"; then
|
Loading…
Reference in a new issue