Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: APOKLIPTICO en 1 Octubre 2010, 03:11 am



Título: Falta libnet.dll.a
Publicado por: APOKLIPTICO en 1 Octubre 2010, 03:11 am
Perdón Vertex, pero no sabía si ponerlo ak o en Progamacion C/C++.

El problema es el siguiente: Estoy compilando ettercap-ng bajo mingw32, compiló perfecto con un par de warnings que si el programa despues no funciona bien, las resolveré pero por ahora compila bien, el problema es cuando quiero linkearlo.
Me pide un "libnet.dll.a" yo tengo uno llamado "libnet.a" lo copié y le puse "libnet.dll.a", pero obviamente eso no resolvió el problema.
Me tira un montón de Undefined references, específicamente a estas funciones:

Código
  1. ../libnet/lib/libnet.dll.a(libnet_resolve.o):libnet_resolve.c:(.text+0x5da): undefined reference to `PacketGetNetInfoEx'
  2. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0xdf): undefined reference to `PacketSetBuff'
  3. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0xf4): undefined reference to `PacketGetNetType'
  4. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x262): undefined reference to `PacketSetHwFilter'
  5. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x289): undefined reference to `PacketAllocatePacket'
  6. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x2dc): undefined reference to `PacketInitPacket'
  7. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x2f9): undefined reference to `PacketSendPacket'
  8. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x30e): undefined reference to `PacketFreePacket'
  9. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x56d): undefined reference to `SendARP@16'
  10. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x597): undefined reference to `GetAdaptersInfo@8'
  11. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x5c5): undefined reference to `GetAdaptersInfo@8'
  12. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x627): undefined reference to `SendARP@16'
  13. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x6d6): undefined reference to `GetIpNetTable@12'
  14. ../libnet/lib/libnet.dll.a(libnet_link_win32.o):libnet_link_win32.c:(.text+0x72b): undefined reference to `GetIpNetTable@12'
  15. ../libnet/lib/libnet.dll.a(libnet_write.o):libnet_write.c:(.text+0x521): undefined reference to `PacketGetNetType'
  16. ../libnet/lib/libnet.dll.a(libnet_write.o):libnet_write.c:(.text+0x60d): undefined reference to `PacketAllocatePacket'
  17. ../libnet/lib/libnet.dll.a(libnet_write.o):libnet_write.c:(.text+0x660): undefined reference to `PacketInitPacket'
  18. ../libnet/lib/libnet.dll.a(libnet_write.o):libnet_write.c:(.text+0x67d): undefined reference to `PacketSendPacket'
  19. ../libnet/lib/libnet.dll.a(libnet_write.o):libnet_write.c:(.text+0x692): undefined reference to `PacketFreePacket'
  20.  

Alguien me podría aclarar un poco esto?
Gracias!


Título: Re: Falta libnet.dll.a
Publicado por: Foxy Rider en 1 Octubre 2010, 08:02 am
Como andás compilando ? instalaste la librería de libnet en un lugar donde el compilador la encuentre ?

Saludos.

P.S  : esto va en C/C++, además, tampoco está relacionado con GNU/Linux si estás usando MingW32 (que sería la implementación del toolset de GNU para Windows)


Título: Re: Falta libnet.dll.a
Publicado por: APOKLIPTICO en 1 Octubre 2010, 14:48 pm
Probé con libnet 1.1.3 (ya compilado para mingw) y libnet 0.10.11 (lo compilé yo y es de la nueva version supongo).
Ninguno de los dos trae ese "libnet.dll.a".
El compilador la puede encontrar bien, sinó, me tiraría file not found.


Título: Re: Falta libnet.dll.a
Publicado por: Littlehorse en 1 Octubre 2010, 16:14 pm
Lo primero, distintas versiones de libnet tienen distintas estructuras, por tanto tenes que usar solo la que se indique, de lo contrario los problemas no se resolverán.

Lo segundo, te faltan detallar varios detalles como para que podamos ayudar correctamente, no basta con las referencias indefinidas. Es que como mínimo podría ser un error del linker u de los parámetros que le estas pasando (si es que lo estas haciendo), incluso error desde código o falta de requisitos en el sistema operativo en el cual estas compilando.

Lo que te recomiendo es que armes un post detallando tanto los errores como el proceso que estas llevando a cabo y lo postees en el foro de soporte de Ettercap. El error es demasiado especifico sobre una aplicacion.

Ettercap FAQ (http://ettercap.sourceforge.net/forum/viewforum.php?f=8)
Ettercap Support (http://ettercap.sourceforge.net/forum/viewforum.php?f=11)

Saludos


Título: Re: Falta libnet.dll.a
Publicado por: APOKLIPTICO en 1 Octubre 2010, 18:43 pm
En realidad, seguí todos los pasos que aparecen en la guía de ettercap, pide libnet 1.1.3, el foro de ettercap está muerto, si te fijas en el FAQ, el ultimo post es de hace más de 5 años, y en el otro es de enero de este año.
Estos son los parametros que se le pasan al GCC:
gcc -Wl,--subsystem,windows  -Wl,--out-implib,ettercap.a -o ettercap.exe [TODOS LOS OBJETOS DEL ETTERCAP] -lws2_32 ../winpcap/lib/libwpcap.a ../winpcap/lib/libpacket.a ../libnet/lib/libnet.dll.a ../pthreads/lib/libpthreadGC.a -L../zlib/lib -lz ../regex/lib/libregex.a ../libiconv/lib/libiconv.dll.a ../gtk/lib/libglib-2.0.dll.a ../gtk/lib/libgmodule-2.0.dll.a ../gtk/lib/libgobject-2.0.dll.a ../gtk/lib/libgthread-2.0.dll.a ../gtk/lib/libgdk-win32-2.0.dll.a ../gtk/lib/libgdk_pixbuf-2.0.dll.a ../gtk/lib/libgtk-win32-2.0.dll.a ../gtk/lib/libpango-1.0.dll.a ../openssl/lib/libssl.a ../openssl/lib/libcrypto.a -lgdi32 -lws2_32 ../gw32c/lib/libgw32c.a -lole32 -luuid

Estoy compilando bajo mingw en windows xp sp3.
En cuanto a errores en el código, la verdad que dudo que esa pueda ser la causa...