+ Responder ao Tópico



  1. #1
    Tenho essa struct para representar o cabecalho tcp e mais em baixo tenho a funcao de checksum.

    struct tcphdr {
    unsigned short porta_origem;
    unsigned short porta_destino;
    unsigned int numero_sequencia;
    unsigned int numero_reconhecimento;
    unsigned char comprimento_cabecalho;
    unsigned char flags;
    unsigned short janela;
    unsigned short checksum;
    unsigned short pont_urgente;
    };

    long inchksum (unsigned char *ptr, unsigned len)
    {
    register long sum = 0;
    register const WORD *wrd = (const WORD*) ptr;
    register long slen = (long)len;
    while (slen > 1)
    {
    sum += *wrd++;
    slen -= 2;
    }

    if (slen > 0) sum += *(const BYTE*)wrd;
    while (sum >> 16) sum = (sum & 0xFFFF) + (sum >> 16);
    return sum;
    }

    ...
    unsigned char pacote[1024];
    ip = (struct iphdr *) pacote;
    tcp = (struct tcphdr *) (pacote + sizeof(struct iphdr));
    data = (char *) (pacote + (sizeof(struct iphdr)+ sizeof(struct tcphdr)));

    ...

    Estou usando chamando a funcao de checksum apos setar todos os campos do cabecalho tcp inclusive o campo checksum como 0.

    ...
    inchksum((unsigned char *)tcp,sizeof(struct tcphdr) + datasize);
    ...

    sendo que datasize são dados adicionais ao cabecalho, que eu adiciono usando o ponteiro data. O cabecalho ip q nao estou citando está calculando o checksum de forma correta, e estou usando essa mesma forma.

    O que pode estar errado?

  2. #2
    Fala cara, blz ?

    Experimente usar um tipo de STRLEN para capturar o tamanho exato da string, a contar o /0, q provavelmente esteja pegando lixo de memória..




    ( )´s






Tópicos Similares

  1. Respostas: 1
    Último Post: 01-08-2008, 18:41
  2. Problemas ao iniciar o administrator do samba no Debian-BR-CDD
    Por willianrm no fórum Servidores de Rede
    Respostas: 2
    Último Post: 03-03-2006, 10:09
  3. [PHP] Problema ao retornar um float do banco de dados...
    Por Tepes no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 14-11-2005, 18:31
  4. Problemas ao gerar o Relatorio do Sarg.
    Por ELIANDRO no fórum Sistemas Operacionais
    Respostas: 2
    Último Post: 20-09-2005, 15:53
  5. problema ao trocar versao do php
    Por visitanteeeee no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 03-10-2004, 18:42

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L