HARDWARE Y SISTEMAS OPERATIVOS, GNU/Linux, Windows, Mac > GNU/Linux, Unix, *BSD and Free Software, Android
Me sigue fallando el instalar nemesis en debian wheezy. (SOLUCIONADO)
shicefgo:
Estupendo, ya has conseguido que las autotools funcionen.
Ahora tienes el error de compilación que yo pasé por alto haciendo que una función devolviese un valor fijo. Te explico los pasos con mayor detalle que antes.
Entra al directorio /src dentro de nemesis-1.4, y carga en un editor de texto llano (nada de cosas ni remotamente parecidas a libreoffice y demás familia) el archivo llamado "nemesis-functions.c". Si no sabes a qué me refiero, utiliza nano (nano nemesis-functions.c). En la parte de abajo tiene un pequeño menú con instrucciones de uso. El carácter '^' significa "pulsar la tecla control además de la siguiente", es muy fácil de manejar. Pulsando Control+x te pregunta si quieres guardar antes de salir, te pide confirmación del nombre del archivo y listo.
Una vez cargado el archivo, busca este trozo de código:
--- Código: ---/**
* Determine if a source Ethernet address has been specified and fill in the
* ETHERhdr structure if necessary.
*
* @param eth ETHERhdr pointer containing the source Ethernet address
* @param device char pointer containing the Ethernet device name
*
* @return 0 on sucess, -1 on failure
*/
int nemesis_check_link(ETHERhdr *eth, char *device)
{
int i;
struct ether_addr *e = NULL;
struct libnet_link_int l2;
memset(&l2, 0, sizeof(struct libnet_link_int));
#ifdef DEBUG
printf("DEBUG: determining if device %s\n has a hardware address "
"assigned.\n", device);
#endif
if (!memcmp(eth->ether_shost, zero, 6))
{
memset(&l2, 0, sizeof(l2));
if ((e = libnet_get_hwaddr(&l2, device, errbuf)) == NULL) /* Posible origen el error */
return -1;
for (i = 0; i < 6; i++)
eth->ether_shost[i] = e->ether_addr_octet[i]; /* Línea 342 */
return 0;
}
else
return 0;
}
--- Fin del código ---
Y borra todo lo que hay entre las llaves de apertura '{' y cierre '}' de la función (la primera y la última), y escribe entre ellas esta única línea: return -1; sin olvidarte del punto y coma; es decir, que te tendría que quedar lo siguiente (nano borra con control+k):
--- Código: ---**
* Determine if a source Ethernet address has been specified and fill in the
* ETHERhdr structure if necessary.
*
* @param eth ETHERhdr pointer containing the source Ethernet address
* @param device char pointer containing the Ethernet device name
*
* @return 0 on sucess, -1 on failure
*/
int nemesis_check_link(ETHERhdr *eth, char *device)
{
return -1;
}
--- Fin del código ---
Como supongo que guardas el paquete comprimido de nemesis, no te preocupes si te equivocas, lo vuelves a descomprimir y lo reintentas.
Una vez modificada esa función, guarda el archivo y ya puedes salir de src y recompilar.
Lo más probable es que las opciones para ethernet no funcionen, pero supongo que podrás utilizar el resto...
Saludos.
Pengüin:
Shicefgo gracias , ahora sí funciona nemesis me lo a compilado y el resultado : :-d
--- Código: ---nemesis
NEMESIS -=- The NEMESIS Project Version 1.4 (Build 26)
NEMESIS Usage:
nemesis [mode] [options]
NEMESIS modes:
arp
dns
ethernet
icmp
igmp
ip
ospf (currently non-functional)
rip
tcp
udp
NEMESIS options:
To display options, specify a mode with the option "help".
--- Fin del código ---
Gracias a todos , ahora estoy algo mas contenta con la solución.Lo doy por solucionado. :dabo:
Navegación
[*] Página Anterior
Ir a la versión completa