← Trisquel GNU/Linux 4.0 Taranis — Enfin un lecteur audio HTML5 natif sur Jamendo ! →
Version Française
Note : cet article est majoritairement une traduction du rapport de bug que j'ai fait sur http://bugzilla.redhat.com/show_bug...
Actuellement, le Passive DNS Support n'est pas activé sur la version Fedora d'ettercap, à cause d'un problème (non spécifique à Fedora) sur le script configure (et sur le fichier acinclude.m4, qui est utilisé pour générer le script configure) : il vérifie la fonction dn_expand (incluse dans resolv.h, qui fait partie de la libc), mais dans le fichier resolv.h, elle est nommée __dn_expand et il y a un "#define dn_expand __dn_expand", donc elle est utilisée sous le nom dn_expand dans le code source d'Ettercap mais dans la librairie resolv, elle est appelée __dn_expand.
Le problème est que la moyen par lequel le script configure (généré par autoconf) vérifie si la fonction dn_expand est présente dans la librairie resolv (en faisant un fausse définition de la fonction dn_expand, en l'appelant dans le main() et enfin en compilant avec le flag -lresolv pour voir s'il y a une erreur), donne une erreur à configure et donc ne le fait pas considérer la librairie resolv comme appropriée pour la fonction db_expand, alors que c'est bien la librairie appropriée.
Ma solution est de dire à configure de vérifier la fonction dn_expand et si il y a une erreur (c'est le cas la plupart du temps), de vérifier la fonction __dn_expand.
J'ai fait un patch pour le fichier acinclude.m4 et un pour le script configure. Chacun de ces patch sont disponibles sur : http://download.paulk.fr/ettercap/.
Si vous n'appliquez que le patch du fichier acinclude.m4, n'oubliez pas de lancer autoconf avant de lancer configure.
Le Passive DNS support est nécessaire pour faire marcher le plugin dns_spoof.
English version
Note: this article is principally a copy of the bug report I made on http://bugzilla.redhat.com/show_bug...
Currently, the Passive DNS support is not enabled on the ettercap Fedora build,
because of a (non-fedora-specific) bug in the configure script (and on the
acinclude.m4 file, which is used to generate the configure script): it checks
the dn_expand function (included in resolv.h, part of libc), but on the
resolv.h file, it's named __dn_expand and a there is a "#define dn_expand
__dn_expand" so it's used under the name "dn_expand" on the source code of
ettercap but on the resolv lib, it's called __dn_expand.
The problem is that with the way the configure script (generated by autoconf)
checks if dn_expand is present on the resolv lib (making a fake definition of
the dn_expand function, calling it on main(), and then compiling with the
-lresolv flag to see if there is no error), configure has an error and so does
not consider lib resolv as an appropriated lib for the dn_expand function,
whereas it's the appropriated lib.
My solution is to tell configure to check the dn_expand function, and if there
is an error (that's the common case), to check the __dn_expand function.
I made a patch for the acinclude.m4 and a patch for the configure script. Both are available on: http://download.paulk.fr/ettercap/.
If you just apply the acinclude.m4 patch, please remind to run
"autoconf" before launching configure.
The Passive DNS support is needed to make the dns_spoof plugin work.
Annexes
La discussion continue ailleurs
URL de rétrolien : http://blog.paulk.fr/trackback/37
