Skip to content
Permalink
Browse files

aireplay-ng: Fix for missing APs in 5 GHz band

If channel cannot be obtained from the 'DSSS Parameter Set' element
(tagtype 3), then try to get the channel from the 'HT Operation'
element (tagtype 61).
  • Loading branch information...
jpmv27 committed Jun 22, 2017
1 parent 9f0df08 commit 8199c04357ea05daaf2de2ae7eebb28d30baef87
Showing with 52 additions and 50 deletions.
  1. +52 −50 src/aireplay-ng.c
@@ -642,9 +642,29 @@ int filter_packet( unsigned char *h80211, int caplen )
return( 0 );
}

int find_tag(unsigned char *pkt, int len, int target)
{
int taglen = 0, tagtype = 0, pos = 0;

taglen = 22; //initial value to get the fixed tags parsing started
taglen+= 12; //skip fixed tags in frames

do
{
pos += taglen + 2;
tagtype = pkt[pos];
taglen = pkt[pos+1];
} while(tagtype != target && pos < len-2);

if(tagtype != target) return -1;
if(pos+2+taglen > len) return -1;

return pos;
}

int wait_for_beacon(unsigned char *bssid, unsigned char *capa, char *essid)
{
int len = 0, chan = 0, taglen = 0, tagtype = 0, pos = 0;
int len = 0, chan = 0, taglen = 0, pos = 0;
unsigned char pkt_sniff[4096];
struct timeval tv,tv2;
char essid2[33];
@@ -666,41 +686,32 @@ int wait_for_beacon(unsigned char *bssid, unsigned char *capa, char *essid)
}
if (! memcmp(pkt_sniff, "\x80", 1))
{
pos = 0;
taglen = 22; //initial value to get the fixed tags parsing started
taglen+= 12; //skip fixed tags in frames
do
pos = find_tag(pkt_sniff, len, 3);
if(pos >= 0)
{
pos += taglen + 2;
tagtype = pkt_sniff[pos];
taglen = pkt_sniff[pos+1];
} while(tagtype != 3 && pos < len-2);

if(tagtype != 3) continue;
if(taglen != 1) continue;
if(pos+2+taglen > len) continue;

chan = pkt_sniff[pos+2];
if(taglen != 1) continue;
chan = pkt_sniff[pos+2];
}
else
{
pos = find_tag(pkt_sniff, len, 61);
if(pos < 0) continue;
taglen = pkt_sniff[pos+1];
if(taglen != 22) continue;
chan = pkt_sniff[pos+2];
}

if(essid)
{
pos = 0;
taglen = 22; //initial value to get the fixed tags parsing started
taglen+= 12; //skip fixed tags in frames
do
{
pos += taglen + 2;
tagtype = pkt_sniff[pos];
taglen = pkt_sniff[pos+1];
} while(tagtype != 0 && pos < len-2);

if(tagtype != 0) continue;
pos = find_tag(pkt_sniff, len, 0);
if(pos < 0) continue;
taglen = pkt_sniff[pos+1];
if(taglen <= 1)
{
if (memcmp(bssid, pkt_sniff+10, 6) == 0) break;
else continue;
}
if(pos+2+taglen > len) continue;

if(taglen > 32)taglen = 32;

@@ -5319,39 +5330,30 @@ int do_attack_fragment()

int grab_essid(unsigned char* packet, int len)
{
int i=0, j=0, pos=0, tagtype=0, taglen=0, chan=0;
int i=0, j=0, pos=0, taglen=0, chan=0;
unsigned char bssid[6];

memcpy(bssid, packet+16, 6);
taglen = 22; //initial value to get the fixed tags parsing started
taglen+= 12; //skip fixed tags in frames
do
pos = find_tag(packet, len, 3);
if(pos >= 0)
{
pos += taglen + 2;
tagtype = packet[pos];
taglen = packet[pos+1];
} while(tagtype != 3 && pos < len-2);

if(tagtype != 3) return -1;
if(taglen != 1) return -1;
if(pos+2+taglen > len) return -1;

chan = packet[pos+2];

pos=0;

taglen = 22; //initial value to get the fixed tags parsing started
taglen+= 12; //skip fixed tags in frames
do
if(taglen != 1) return -1;
chan = packet[pos+2];
}
else
{
pos += taglen + 2;
tagtype = packet[pos];
pos = find_tag(packet, len, 61);
if(pos < 0) return -1;
taglen = packet[pos+1];
} while(tagtype != 0 && pos < len-2);
if(taglen != 22) return -1;
chan = packet[pos+2];
}

if(tagtype != 0) return -1;
pos = find_tag(packet, len, 0);
if(pos < 0) return -1;
taglen = packet[pos+1];
if(taglen > 250) taglen = 250;
if(pos+2+taglen > len) return -1;

for(i=0; i<MAX_APS; i++)
{

17 comments on commit 8199c04

@kcdtv

This comment has been minimized.

Copy link

replied Jun 22, 2017

Great Job! I reported an issue about that problem in aircrack-ng trac and your patch solved the issue, I can inject now on my PA. in 5Ghz, before I couldn't! Thanks

@zpsmack

This comment has been minimized.

Copy link

replied Jul 6, 2017

I got AWU036ACH and i could not inject on 5 Ghz band, Please help on How to apply this commit? do i have to paste the code in bloc note and save it in .py file and then run the file?

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Jul 12, 2017

@zpsmack
You can download the commit as a patch using this link:
https://github.com/jpmv27/aircrack-ng/commit/8199c04357ea05daaf2de2ae7eebb28d30baef87.patch
and then use the 'patch' utility to apply it.

@zpsmack

This comment has been minimized.

Copy link

replied Jul 13, 2017

Thanks for your fee-back,

`patch <8199c04357ea05daaf2de2ae7eebb28d30baef87.patch

File to patch: ?????`
I thinks i need to specify the path of the aireplay installed file?
est ce /usr/sbin/ ?

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Jul 13, 2017

@zpsmack
Le fichier correctif (patch) contient les noms des fichiers à corriger, donc aucun besoin de les spécifier de façon explicite.
Mais tu mentionnes /usr/sbin. Le correctif s'applique aux fichiers-source et après avoir appliqué le correctif il faut recompiler le logiciel et le réinstaller.
Il faut se situer (cd) dans le répertoire contenant les sources du logiciel avant d'appliquer le correctif.
Il peut aussi être nécessaire de passer l'option -p1 à patch.

@zpsmack

This comment has been minimized.

Copy link

replied Jul 13, 2017

A vrai dire je ne sais pas ou se trouve le fichier source, suis pas un pro..... peut être dans /usr/local/etc/ ?
Cependant, j'ai une version du fichier aireplay-ng.c que j'avais téléchargé en clonant ton repot (git clone https://github.com/jpmv27/aircrack-ng.git)
j'ai mis le patch dans le rep ci-dessous
root@kali:~/aircrack-ng/src/

A partir d'ici

root@kali:~/aircrack-ng/src/# patch <8199c04357ea05daaf2de2ae7eebb28d30baef87.patch
patching file aireplay-ng.c

Pour ré compiler le fichier patcher

root@kali:~/aircrack-ng/src# gcc aireplay-ng.c -o aireplay-ng
aireplay-ng.c: In function 'main':
aireplay-ng.c:6958:80: error: '_REVISION' undeclared (first use in this function)
                 printf( usage, getVersion("Aireplay-ng", _MAJ, _MIN, _SUB_MIN, _REVISION, _BETA, _RC)  );
                                                                                ^~~~~~~~~
aireplay-ng.c:6958:80: note: each undeclared identifier is reported only once for each function it appears in

la compilation ne marche pas, peux-tu aider s'il te plaît?

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Jul 13, 2017

Généralement, je construit et installe le tout avec:
make
sudo make install

Note que ça va installer les programmes sous /usr/local au lieu de /usr.

@zpsmack

This comment has been minimized.

Copy link

replied Jul 13, 2017

ok

root@kali:~/aircrack-ng/src# make 
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  wpaclean.o osdep/radiotap/radiotap.o -o wpaclean -Losdep -losdep -lnl-genl-3 -lnl-3
/usr/bin/ld: cannot find -lnl-genl-3
collect2: error: ld returned 1 exit status
Makefile:256: recipe for target 'wpaclean' failed
make: *** [wpaclean] Error 1
root@kali:~/aircrack-ng/src# make install 
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  wpaclean.o osdep/radiotap/radiotap.o -o wpaclean -Losdep -losdep -lnl-genl-3 -lnl-3
/usr/bin/ld: cannot find -lnl-genl-3
collect2: error: ld returned 1 exit status
Makefile:256: recipe for target 'wpaclean' failed
make: *** [wpaclean] Error 1
root@kali:~/aircrack-ng/src# 

A priori j'ai un message d'erreur

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Jul 13, 2017

sudo apt-get install libnl-genl-3-dev
et refait make.

@zpsmack

This comment has been minimized.

Copy link

replied Jul 13, 2017

je l'avais déjà fait

root@kali:~/aircrack-ng/src# apt-get install libnl-3-dev 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libnl-3-dev is already the newest version (3.2.27-2).
The following package was automatically installed and is no longer required:
  python-qrcode
Use 'apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 751 not upgraded.

Je reçois toujours le même message d'erreur cependant

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Jul 13, 2017

Mais il cherche libnl-genl-3-dev pas libnl-3-dev, non?

@zpsmack

This comment has been minimized.

Copy link

replied Jul 13, 2017

sorry, autant pour moi,
c'est fait est plus de message d'erreur, j'ai compilé à partir du rep que j'ai cloné de ton repo

root@kali:~# sudo apt-get install libnl-genl-3-dev
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
root@kali:~# sudo lsof /var/lib/dpkg/lock
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
packageki 736 root   13uW  REG    8,1        0 2107393 /var/lib/dpkg/lock
root@kali:~# kill 736
root@kali:~# sudo apt-get install libnl-genl-3-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  python-qrcode
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  libnl-genl-3-dev
0 upgraded, 1 newly installed, 0 to remove and 751 not upgraded.
Need to get 20,1 kB of archives.
After this operation, 60,4 kB of additional disk space will be used.
Get:1 http://archive-4.kali.org/kali kali-rolling/main amd64 libnl-genl-3-dev amd64 3.2.27-2 [20,1 kB]
Fetched 20,1 kB in 9s (2 118 B/s)       
Selecting previously unselected package libnl-genl-3-dev:amd64.
(Reading database ... 418493 files and directories currently installed.)
Preparing to unpack .../libnl-genl-3-dev_3.2.27-2_amd64.deb ...
Unpacking libnl-genl-3-dev:amd64 (3.2.27-2) ...
Setting up libnl-genl-3-dev:amd64 (3.2.27-2) ...
root@kali:~# cd aircrack-ng/
root@kali:~/aircrack-ng# make
make -C src all
make[1]: Entering directory '/root/aircrack-ng/src'
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  wpaclean.o osdep/radiotap/radiotap.o -o wpaclean -Losdep -losdep -lnl-genl-3 -lnl-3
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o airventriloquist-ng.o airventriloquist-ng.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  airventriloquist-ng.o common.o crypto.o osdep/radiotap/radiotap.o -o airventriloquist-ng -Losdep -losdep -lnl-genl-3 -lnl-3 -lssl -lcrypto 
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o besside-ng-crawler.o besside-ng-crawler.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  besside-ng-crawler.o -o besside-ng-crawler -lpcap
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o aireplay-ng.o aireplay-ng.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  aireplay-ng.o common.o crypto.o osdep/radiotap/radiotap.o -o aireplay-ng -Losdep -losdep -lnl-genl-3 -lnl-3 -lssl -lcrypto 
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o airodump-ng.o airodump-ng.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  airodump-ng.o common.o crypto.o uniqueiv.o osdep/radiotap/radiotap.o -o airodump-ng -Losdep -losdep -lnl-genl-3 -lnl-3 -lssl -lcrypto  -lpthread 
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o airserv-ng.o airserv-ng.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  airserv-ng.o common.o osdep/radiotap/radiotap.o -o airserv-ng -Losdep -losdep -lnl-genl-3 -lnl-3
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o airtun-ng.o airtun-ng.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  airtun-ng.o common.o crypto.o osdep/radiotap/radiotap.o -o airtun-ng -Losdep -losdep -lnl-genl-3 -lnl-3 -lssl -lcrypto 
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE   -c -o airbase-ng.o airbase-ng.c
gcc -g -W -Wall -O3  -mavx -DJOHN_AVX -pthread -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -DCONFIG_LIBNL30 -DCONFIG_LIBNL -I/usr/include/libnl3 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-array-bounds -Iinclude -DSIMD_CORE  airbase-ng.o common.o crypto.o osdep/radiotap/radiotap.o -o airbase-ng -Losdep -losdep -lnl-genl-3 -lnl-3 -lssl -lcrypto  -lpthread
make[1]: Leaving directory '/root/aircrack-ng/src'
root@kali:~/aircrack-ng# make install 
make -C src all
make[1]: Entering directory '/root/aircrack-ng/src'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/aircrack-ng/src'
make -C src install
make[1]: Entering directory '/root/aircrack-ng/src'
make -C osdep install
make[2]: Entering directory '/root/aircrack-ng/src/osdep'
Building for Linux
make[3]: Entering directory '/root/aircrack-ng/src/osdep'
make[3]: '.os.Linux' is up to date.
make[3]: Leaving directory '/root/aircrack-ng/src/osdep'
make[2]: Leaving directory '/root/aircrack-ng/src/osdep'
install -d /usr/local/bin
install -m 755 aircrack-ng airdecap-ng packetforge-ng ivstools kstats makeivs-ng airdecloak-ng wpaclean airventriloquist-ng besside-ng-crawler /usr/local/bin
install -d /usr/local/sbin
install -m 755 aireplay-ng airodump-ng airserv-ng airtun-ng airbase-ng  /usr/local/sbin
make[1]: Leaving directory '/root/aircrack-ng/src'
make -C scripts install
make[1]: Entering directory '/root/aircrack-ng/scripts'
install -m 755 airodump-ng-oui-update /usr/local/sbin
install -m 755 airmon-ng /usr/local/sbin
make[1]: Leaving directory '/root/aircrack-ng/scripts'
make -C manpages install
make[1]: Entering directory '/root/aircrack-ng/manpages'
make cleanfiles sqlite=true experimental=true
make[2]: Entering directory '/root/aircrack-ng/manpages'
rm -f /usr/local/share/man/man1/aircrack-ng.1
rm -f /usr/local/share/man/man1/airdecap-ng.1
rm -f /usr/local/share/man/man1/ivstools.1
rm -f /usr/local/share/man/man1/kstats.1
rm -f /usr/local/share/man/man1/makeivs-ng.1
rm -f /usr/local/share/man/man1/packetforge-ng.1
rm -f /usr/local/share/man/man1/airdecloak-ng.1
rm -f /usr/local/share/man/man1/wpaclean.1
rm -f /usr/local/share/man/man1/besside-ng-crawler.1
rm -f /usr/local/share/man/man1/airolib-ng.1
rm -f /usr/local/share/man/man1/buddy-ng.1
rm -f /usr/local/share/man/man8/aireplay-ng.8
rm -f /usr/local/share/man/man8/airmon-ng.8
rm -f /usr/local/share/man/man8/airodump-ng.8
rm -f /usr/local/share/man/man8/besside-ng.8
rm -f /usr/local/share/man/man8/airserv-ng.8
rm -f /usr/local/share/man/man8/airtun-ng.8
rm -f /usr/local/share/man/man8/airbase-ng.8
rm -f /usr/local/share/man/man8/airodump-ng-oui-update.8
rm -f /usr/local/share/man/man8/tkiptun-ng.8
rm -f /usr/local/share/man/man8/easside-ng.8
rm -f /usr/local/share/man/man8/wesside-ng.8
rm -f /usr/local/share/man/man8/airventriloquist.8
make[2]: Leaving directory '/root/aircrack-ng/manpages'
install -d /usr/local/share/man/man1
install -d /usr/local/share/man/man8
install -m 644 aircrack-ng.1 airdecap-ng.1 ivstools.1 kstats.1 makeivs-ng.1 packetforge-ng.1 airdecloak-ng.1 wpaclean.1 besside-ng-crawler.1 /usr/local/share/man/man1
install -m 644 aireplay-ng.8 airmon-ng.8 airodump-ng.8 besside-ng.8 airserv-ng.8 airtun-ng.8 airbase-ng.8 airodump-ng-oui-update.8  /usr/local/share/man/man8
make[1]: Leaving directory '/root/aircrack-ng/manpages'
 
[*] Run 'airodump-ng-oui-update' as root (or with sudo) to install or update Airodump-ng OUI file (Internet connection required).
root@kali:~/aircrack-ng# airodump-ng-oui-update
[*] Downloading IEEE OUI file...
[*] Parsing OUI file...
[*] Airodump-ng OUI file successfully updated
root@kali:~/aircrack-ng# 

je vais testé demain l'injection en 5Ghz si ça marche et reviens vers toi
Merci beacoup

@zpsmack

This comment has been minimized.

Copy link

replied Jul 13, 2017

il me semble qu'il y avait deux comit à appliqué pour ressourdre ce problème et celui ?
aireplay-ng: Increase MAX_APS and use it consistently

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Jul 14, 2017

Si tu as cloné mon répo, tu auras les deux commits.
Tu devrais les voir tous deux dans git log

@zpsmack

This comment has been minimized.

Copy link

replied Jul 14, 2017

C'est bon ça marche bien,
Merci pour ton aide

@rawkahn

This comment has been minimized.

Copy link

replied Oct 1, 2017

@jpmv27 Im running into a strange issue where 'make' fails to compile your git clone with the following error:
image

What am I missing?

@jpmv27

This comment has been minimized.

Copy link
Owner Author

replied Oct 8, 2017

@rawkahn
Do you have the "pkg-config" package installed?
MV

Please sign in to comment.
You can’t perform that action at this time.