Weet iemand misschien een voorbeeld van een crc checksum dat je kan invoegen in een ip packet ? Momenteel heb ik al veel sites gevonden maar de indeling kwa programering is totaal anders in c.
bron : http://www.jbox.dk/sanos/source/utils/sh/ping.c.html
Hier geeft die een totaal andere return value vergeleken met de onderste.
bron : http://www.webhostingtalk...82-re-rpcl_icmpdos-c.html
Hier geeft resuleerd die alleen na ~sum
Bron : http://www.kernelthread.c...c/hanoimania/hanoi-icmp.c
En hier weer na answere ook is de aan roep van de checksum steeds anders in het packet.
van de struct iphdr of ip. Weet iemand wat wel een goeie checksum is of welke functies
te gebruiken als je bv een ping programma wil schrijven?
bron : http://www.jbox.dk/sanos/source/utils/sh/ping.c.html
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| unsigned short checksum(unsigned short *buffer, int size)
{
unsigned long cksum = 0;
while (size > 1)
{
cksum += *buffer++;
size -= sizeof(unsigned short);
}
if (size) cksum += *(unsigned char *) buffer;
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >> 16);
return (unsigned short) (~cksum);
} |
Hier geeft die een totaal andere return value vergeleken met de onderste.
bron : http://www.webhostingtalk...82-re-rpcl_icmpdos-c.html
code:
1
2
3
4
5
6
7
8
| unsigned short cksum(unsigned short *buf, int len){
register unsigned long sum;
for(sum = 0; len > 0; len--) sum += *buf++;
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
return ~sum;
} |
Hier geeft resuleerd die alleen na ~sum
Bron : http://www.kernelthread.c...c/hanoimania/hanoi-icmp.c
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| in_cksum(unsigned short *addr, int len)
{
int nleft = len;
int sum = 0;
unsigned short *w = addr;
unsigned short answer = 0;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(unsigned char *)(&answer) = *(unsigned char *)w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return (answer);
} |
En hier weer na answere ook is de aan roep van de checksum steeds anders in het packet.
van de struct iphdr of ip. Weet iemand wat wel een goeie checksum is of welke functies
te gebruiken als je bv een ping programma wil schrijven?
[ Voor 13% gewijzigd door Verwijderd op 13-08-2007 15:16 ]