begin process at 2012 05 28 07:29:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

Analyse du sniffeur et recuperation d'une trame


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Analyse du sniffeur et recuperation d'une trame

vendredi 13 novembre 2009 à 13:26:53 | Analyse du sniffeur et recuperation d'une trame

Razily

Bonjour à tous ,

je suis un peu débutant en programmation et surtout sur tout ce qui est réseau : en fait voilà , mon travail consiste après avoir lancé le sniffeur à récuperer et analyser le contenu de la trame : l'adresse ethernet de l'expediteur et celle du destinataire de la trame et le type de la trame ethernet !!
le programme devra donner , en clair , la liste des adresses ethenet des postes connectés au réseau !! vu qu'on a travailé dans une salle spécifique en réseau à la fac , j'ai pu enregistrer les données envoyer par le sniffeur :

Code C/C++ :
Byte rcv:
60
[b]ff ff ff ff ff ff[/b] [i]00 b0 d0 31 f1 46[/i] [u]08 06[/u] 00 01
08 00 06 04 00 01 00 b0 d0 31 f1 46 c0 a8 0a 04
00 00 00 00 00 00 c0 a8 0a fe 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
Byte rcv:
98
ff ff ff ff ff ff 00 10 4b b2 70 60 08 00 45 00
00 54 13 54 40 00 40 01 91 04 c0 a8 0a 01 c0 a8
0a ff 08 00 cb a6 8e 38 13 54 b4 0b f7 48 e8 74
0c 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25
26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35
36 37




si j'ai bien compris le deroulement : je dois recuperer dans le programme qlq chose de ce genre :
adresse destination : ff ff ff ff ff ff
adresse source : 00 b0 d0 31 f1 46
type : 08 06

le prof nous a dit , qu'il y a certaines bibliothèques nécessaires pour le dévellopement en C : eth_lib.o, eth_lib.h
inet_str.h(les structures c necessaires pour programmer )

les infos sur cette librairie sera ici :eth_lib.het il y a déjà eth_lib.c

j'ai écrit un bout de code en s'inspirant et en employant les fonctions predefinies mais le resultat ne correspond pas aux attentes ::
Code C/C++ :
#include<stdio.h>
#include<stdlib.h>
#include"eth_lib.h"
#include<string.h>
#include"inet_str.h"

// structure composant la trame
/*
struct eth_frame {
char adr_dest[6];
char adr_send[6];
char type[2];
char data[MAX_PACKET_SIZE - 6 - 6 - 2];
};
* */

typedef struct eth_frame Trame;

/*
// fonction fournie par la bibliothèque pour lire
struct eth_frame * read_eth_frame(int fd, unsigned short int type, int * n);
// fonction fournie par la bibliothèque eth_lib.c pour écrire
int write_eth_frame(int fd, struct eth_frame *frame, int len);
*/


struct eth_frame* lireTrame()
{
char chaine[100];
int nbre = 0;
static Trame donnee;

// lecture de l'entree standard
fscanf(stdin,"%s",chaine);
fscanf(stdin,"%d",&nbre);
// ////////////////////////////////////////////////////////////
// Lecture sur le flot d'entree d'un nombre donne en parametre
// d'octets. Le resultat est retourne par le pointeur buf qui
// doit pointer sur une structure de donnee suffisante pour
// recevoir les octets lus. get_buf est fournie dans eth_lib.h
get_buf((unsigned char*)&donnee,nbre);

// on retourne un poiteur sur les données lues
return &donnee;

}



int main ()
{

char msg[100]; //les données de la trame converties à une chaîne de caractères
char debutmsg[7]; //le premier mot du message
char type[4]; //le type de la trame sous forme d'une chaîne de
caractères
Trame * ptrTrame;
ptrTrame = lireTrame();
// conversion en chaine de caractere
// fonction disponibele dans eth_lib.h
charhexa_to_char(char_to_charhexa(ptrTrame->data,100,msg);
charhexa_to_char(char_to_charhexa(ptrTrame->data,7,debutmsg);
type = char_to_charhexa(ptrTrame->type,2);
// trame = read_frame();
//charhexa_to_char(char_to_charhexa(trame->data, 50), msg);

// première partie TP recuperer Adr dest -source et type

printf("*****Adresse Destination**** :%s\n",char_to_charhexa(ptrTrame->adr_dest,6);
printf("*****Adresse Source**********:%s\n",char_to_charhexa(ptrTrame->adr_send,6);
printf("********Type*****************:%s\n",ptrTrame->type);

// deuxième partie TP
//char * get_eth_addr(int fd); fontion permettant d'avoir l'adresse d'une trame
// et permettant de convertir sous cette forme 00:00:C0:F3:57:6B
// on verifie si la trame est de type 9000




return 0;

}






et après compilation :
j'ai un message de ce genre sur le terminal :

*****Adresse Destination**** :000000000000
*****Adresse Source**********:000000000000
********Type*****************:000000000000


Cette discussion est classée dans : type, char, trame, ff, eth


Répondre à ce message

Sujets en rapport avec ce message

affectation valeur variable type char [ par Vinsou ] J'ai une variable char qui doit contenir du texte. Mais au milieu de ce texte il y a des valeurs provenant d'une base de donnée. Comment faire pour a Convertir un type char (contenant bien sur un nombre) en short? [ par houssadotcom ] Bonjour, tout est dans le titre.J'ai un tableau de type char contenant par exemple la valeur '123', et je voudrais en faire un short.Comment faire ?Me Convertir un type char (contenant bien sur un nombre) en short? [ par houssadotcom ] Bonjour, tout est dans le titre.J'ai un tableau de type char contenant par exemple la valeur '123', et je voudrais en faire un short.Comment faire ?Me Convertion de type [ par Siriusgalaxie26 ] SiriusJ'ai (encore) un problème : J'aurais besoin d'une liste des fonctions de convertion de type (par ex: char en char*, ou int en char, ou encore An comment faire insérer du 'char' dans un tableau de 'double' [ par felisk ] J'ai créé un tableau où je stocke des valeurs de type 'double', j'aimerai dans les prières ligne de ce tableau insérer quelques lignes de commentaires Manip' des variables du type char... [ par DJeS ] J'ai d'eternels problemes pour manipuler les variables char, const char etc...quand je veux faire passer un argument char a un fonction j'ai souvent d Pb avec variable char [ par enrageur ] voila j'utilise des variables de type char. je l'initialise de la maniere suivante :char tab[256];Mon probleme est que j'aimerais initialiser le table Char* capricieux.... [ par Clonk ] Bonjour,alors voilà, j'ai une classe "Champ" avec les attributs suivant :private: char * _nomchamp; char * _explication; char * _type; char * _format; Probleme avec une liaison serie [ par xtrememan ] Voila je dois effectuer une reception de trame avec une liaison serie par le biais d'un programme en C. J'ai reussis l'emission,mais je reste bloquer Je ne sais plus bien caster des pointeurs 'universels' [ par LiBe444 ] Bonjour, dans l'en tête tads.h, j'utilise une fonction en préprocession de la forme   #define VAL(a)(a.type==EK_ENTIER ? *(int*)a.valeur : (a.type==E


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,012 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales