Si la libnet est un outil fort sympathique, elle n'est plus vraiment entretenue par son développeur principal (unique?) Mike Schiffman. La dernière version (1.1.3) est donc fournie avec les fichiers de projet pour visual C++ 2005 et ça ne compile plus sous le dernier VC++ express! (Sous Gnu/Linux et FreeBSD ça marche sans soucis par contre!)
Voici les changements à effectuer pour que la compilation puisse se faire sous Windows :
La libnet dépend de la libpcap (winpcap sous windows). Il vous faut donc installer cette dernière ainsi que le winpcap developers pack.
Dans pcap-stdinc.h : commentez les lignes :
Dans libnet.h ajoutez la ligne suivante :
Qui vous évitera des warnings à tout va du compilateur
Vous pouvez ajouter également cette ligne dans le fichier libnet_link_win32.c
Plus loin dans libnet.h ajoutez
et enfin : dans libnet_resolv.c, à la ligne 128~129, remplacez :
par
( Il existe sans doute mieux mais bon... )
Voila, un petit F7 et c'est parti!! A la fin de la compilation, la DLL se trouve dans C:\winnt\system32.
Si vous avez des remarques pour améliorer le truc, me dire que ça marche pas, ou qu'au contraire c'est super, n'hésitez pas!
Voici les changements à effectuer pour que la compilation puisse se faire sous Windows :
La libnet dépend de la libpcap (winpcap sous windows). Il vous faut donc installer cette dernière ainsi que le winpcap developers pack.
Dans pcap-stdinc.h : commentez les lignes :
#define snprintf _snprintf
#define vsnprintf _vsnprintf
Dans libnet.h ajoutez la ligne suivante :
#define _CRT_SECURE_NO_WARNINGS
Qui vous évitera des warnings à tout va du compilateur
Vous pouvez ajouter également cette ligne dans le fichier libnet_link_win32.c
Plus loin dans libnet.h ajoutez
#define strdup _strdup
et enfin : dans libnet_resolv.c, à la ligne 128~129, remplacez :
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE,
"%s(): %s\n", __func__, hstrerror(h_errno));
par
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE,
"%s(): %s\n", __func__, "");
( Il existe sans doute mieux mais bon... )
Voila, un petit F7 et c'est parti!! A la fin de la compilation, la DLL se trouve dans C:\winnt\system32.
Si vous avez des remarques pour améliorer le truc, me dire que ça marche pas, ou qu'au contraire c'est super, n'hésitez pas!
1 commentaire:
Mec, tu es un Dieu ! Merci !
Enregistrer un commentaire