Rechercher : dans
Par :

Decoder une table ARP

Dernière réponse le 17 nov 2009 à 12:10:29 Enigamy, le 6 sep 2008 à 14:06:46 
 Signaler ce message aux modérateurs

Bonjour je dois decoder une trame ARP et je n'ai AUCUNE idée de comment m'y prendre , la table ARP est la suivante :

ADDR HEX

0000 FF FF FF FF FF FF 00 40 05 13 65 80 08 06 00 01
0010 08 00 06 04 00 01 00 40 05 13 65 80 80 DE 0C 01
0020 00 00 00 00 00 00 80 DE 0C 02 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00



Merci d'avance !

Meilleures réponses pour « Decoder une table ARP » dans :

1

steak_frite, le 5 oct 2008 à 17:30:28

Tu as là une trame ARP imbriqué dans une trame ethernet.
La trame ARP est inscrite dans la partie donnée de la trame ethernet.
Donc si tu connais la forme des trames tu résouds ton prb.
Je te donne les formes des trames à toi de découper dans ton exemple :

Trame ethernet :

preambule(8 octet) | adresse destination (6 oct) | adr. src (6) | type (2) | donnée (jusqua 1500 octet) | cheksum

pour le type normalement on a :
# 0x0800 : IPv4
# 0x86DD : IPv6
# 0x0806 : ARP
Ce qui est étonnant puisque dans ta trame le type est 0800 = IPv4 (au lieu de 0806 pour ARP)

Bref, après le type tu dois avoir jusqu'à max 1500 octets de données où tu peux lire ta requête ARP selon le shéma :

type_de_reseau_niv2 (4) | type_de_reseau_niv3 (4)
longeur_des_adresses_de_niveau_2 (2) | longeur_des_adresses_de_niveau_3 (2) | type_doperation (4)
adr_niv2_src (6) | adr_niv3_src | adr_niv2_dst(6) | adr_niv3_dst(6)

Quelques remarques :
1)à priori dans ton cas le niveau2=ethernet et le niveau3=IP
2)type_de_reseau_niv2 (4) | type_de_reseau_niv3 (4) sont apparament absents dans ta trame donc oubli ces champs.
3)type_dopertation= 1 pour une requete ARP (pour le reply on change cette valeur)
4)adr_niv2_dst(6) est mis à 00 00 00 00 00 00 comme tu peux le remarquer car c'est ce que cherche à determiner la requete ARP.

Répondre à steak_frite

2

steak_frite, le 5 oct 2008 à 18:12:16
  • +1

BON, J'AI FAIT QUELQUES BOURDES JE REPREND MON MESSAGE :

Trame ethernet :

Pas de préambule dans ton cas.

adresse destination (6 oct) | adr. src (6) | type (2) | donnees
FF FF FF FF FF FF | 00 40 05 13 65 80 | 08 06

pour le type normalement on a :
# 0x0800 : IPv4
# 0x86DD : IPv6
# 0x0806 : ARP -> c'est ce qu'on a dans la trame

Partie ARP (=donnees de la trame ethernet) :

type_de_reseau_niv2 (2) | type_de_reseau_niv3 (2)
longeur_des_adresses_de_niveau_2 (1) | longeur_des_adresses_de_niveau_3 (2) | type_doperation (2)
adr_niv2_src (6) | adr_niv3_src(4) | adr_niv2_dst(6) | adr_niv3_dst(4)
=
00 01 (pour ethernet) | 08 00 (pour IP) | 06 (6octets pour eth) | 04 (4oct pour IP) | 00 01 (1 pour une requete 2 pour un reply) | 00 40 05 13 65 80 (adr eth source) | 80 DE 0C 01 (adr ip src)
00 00 00 00 00 00 (adr eth dest à 0 car c'est ce qu'on cherche) | 80 DE 0C 02 (adr ip dest) |
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (octets de bourage)

Répondre à steak_frite

3

 tkr, le 17 nov 2009 à 12:10:29

Merci

Répondre à tkr
Collection CommentÇaMarche.net