Autor Tema: Me sigue fallando el instalar nemesis en debian wheezy. (SOLUCIONADO)  (Leído 18772 veces)

Desconectado shicefgo

  • Member
  • ***
  • Mensajes: 166
Re:Me sigue fallando el instalar nemesis en debian wheezy.
« Respuesta #20 en: 16 de Junio de 2013, 11:58:05 pm »
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: [Seleccionar]
/**
 * 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;
}

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: [Seleccionar]
**
 * 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;
}

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.

Desconectado Pengüin

  • Member
  • ***
  • Mensajes: 242
  • www.daboweb.com
Re:Me sigue fallando el instalar nemesis en debian wheezy.
« Respuesta #21 en: 18 de Junio de 2013, 09:45:35 pm »
Shicefgo gracias , ahora sí funciona nemesis me lo a compilado y el resultado : :-d
Código: [Seleccionar]
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".
Gracias a todos , ahora estoy algo mas contenta con la solución.Lo doy por solucionado. :dabo:
Pen

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License