|
|
Entetes IP/ICMP/ARP
 |
| Auteur |
Message |
analyzer

Inscrit le: 20 Déc 2004 Messages: 86 Localisation: Lyon
|
Posté le: Sam Juil 09, 2005 10:50 pm Sujet du message: Entetes IP/ICMP/ARP |
|
|
Étant donné que dans de nombreux forums, je vois beaucoup de personnes ayant des problèmes avec les déclarations / types à utiliser pour élaborer des paquets, je vais vous donner quelques entetes avec lesquelles je travaille:
ARP:
| Code: |
#define ETH_ADD_LEN 6 /* Ethernet Address Length */
#define ARP_ETH_PADDING 18 /* 18 bytes ethernet padding */
#define ARP_ETH_ADDR_SPACE 6 /* Ethernet Address Space */
#define ARP_IP_ADDR_SPACE 4 /* IP Address Space */
struct arppkt
{
// Ethernet Header
unsigned char eth_daddr[ETH_ADD_LEN]; /* +00 - Destination ethernet address */
unsigned char eth_saddr[ETH_ADD_LEN]; /* +06 - Source ethernet address */
unsigned short eth_type; /* +12 - EtherType */
// ARP Header
unsigned short ar_hrd; /* +14 - Hardware address space */
unsigned short ar_pro; /* +16 - Protocol address space */
unsigned char ar_hln; /* +18 - Length of hardware address */
unsigned char ar_pln; /* +19 - Length of protocol address */
unsigned short ar_op; /* +20 - ARP opcode (command) */
unsigned char ar_sha[ETH_ADD_LEN]; /* +22 - Source Hardware address */
IPAddr ar_sip; /* +28 - Source Protocol address */
unsigned char ar_tha[ETH_ADD_LEN]; /* +32 - Destination Hardware address */
IPAddr ar_tip; /* +38 - Destination Protocol address */
/* 42 bytes */
/* Ethernet padding */
//unsigned char eth_pad[ARP_ETH_PADDING]; /* Ethernet padding */
}; // End of arppkt
|
IP:
| Code: |
struct ip_hdr
{
unsigned char hlv; /* +00 - header len. & version */
unsigned char tos; /* +01 - type of service */
unsigned short tot_len; /* +02 - total packet length */
unsigned short id; /* +04 - identification */
unsigned short fo_flag; /* +06 - fragment offset field & flags */
unsigned char ttl; /* +08 - time to live */
unsigned char protocol; /* +09 - ip protocol */
unsigned short checksum; /* +10 - ip checksum */
unsigned long saddr; /* +12 - source address */
unsigned long daddr; /* +16 - destination address */
/* 20 bytes */
};
|
ICMP:
| Code: |
struct icmp_hdr
{
unsigned char type; /* +00 - message type */
unsigned char code; /* +01 - type sub-code */
unsigned short checksum; /* +02 - icmp checksum */
unsigned short id; /* +04 - identification */
unsigned short sequence; /* +06 - sequence number */
/* 8 bytes */
};
|
PS: Pour le reste des entetes (UDP, etc), n'ayant pas encore eu l'occasion de les utiliser, je les posterais en temps utile. |
|
| Revenir en haut |
|
| Auteur |
Message |
eX-
Inscrit le: 22 Nov 2006 Messages: 1
|
Posté le: Mer Nov 22, 2006 1:59 pm Sujet du message: cool |
|
|
yep 4n4lyz3R,
merci pr le c/c
faudrai que tu expliques (si ta le tps) comment on peut en tirer profit
il s'agit uniquement des declarations a passer ?
sous quel environnement tu dev ? unix dows interface ?? (kdev etc...)
Merci |
|
| Revenir en haut |
|
| Auteur |
Message |
analyzer

Inscrit le: 20 Déc 2004 Messages: 86 Localisation: Lyon
|
Posté le: Mar Nov 28, 2006 5:05 pm Sujet du message: |
|
|
Ceci constitue les structures permettant de stocker les entetes IP/ICMP/ARP.
Concernant l'IDE/OS, je suis sous XP SP2 et je développe sous VS 2005
+ |
|
| Revenir en haut |
|
|
Page 1 sur 1
|
|
|