Sniffer

merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007 - 7 mai 2007 à 00:28
merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007 - 2 juin 2007 à 09:25
bonjour,
 j ai trouvé ce code source d'un sniffer http://www.cppfrance.com/code.aspx?ID=38420, et il m'interesse bcp dans le cadre de mon projet, mais comme je ne suis pas tres programmeur je cherche quelqun pour m aider à comprendre les differentes etapes de ce programme et son fonctionement.

merci d avance.

10 réponses

emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
7 mai 2007 à 13:03
Salut,

Dans un sniffer y'a deux parties:
1) capture des paquets
2) affichage des informations
Pour la capture des paquets il faut utiliser une librairie spéciale, ici winpcap

--y'a juste à lire la doc de la librairie winpcap et à s'interfacer correctement--

Pour l'affichage des informations de chaque paquet, c'est juste la création des structures et l'affichage des champs.
Les protocoles sont imbriqués les uns dans les autres, ce qui fait que ça fait faire quelques tests.
Par exemple tu peux avoir des données HTTP dans un paquet TCP avec un entête IP et un entête Ethernet mais c'est pas compliqué en soi.
Si tu as une question particulière sur quelque chose que tu ne comprends pas, dis-le.
Sinon c'est assez technique (mais pas difficile) donc il faut des connaissances précises sur structures et pointeurs, car c'est pas niveau débutant non plus. OK.
@++
Une autruche ne se cuit pas aux petits lardons.
0
merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007
7 mai 2007 à 19:35
salut,
merci pour votre reponse, c vrai que c'est technique, mais question protocoles cava j'ai pas de probleme,
j'essaye de comprendre le code source, et je vous poserai des questions si necessaire, 
je vais me plonger sur la fonction print_data, et print_packet, en suite sur le programme principal, je vois ça comme la mer a boire, 

j'aimerai bien comprendre le principe du  fonctionnement pour mettre ça dans mon rapport
merci à vous  
0
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
8 mai 2007 à 10:07
Salut,

Parfois je suis surprise des gens qui lisent des codes et qui essayent de comprendre sans avoir les bases, c'est pas un tutorial ou un cours un code comme même.

Une autruche ne se cuit pas aux petits lardons.
0
merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007
9 mai 2007 à 10:17
bonjour,
je me suis mal exprimé je pense, je connais tt ce qui est reseau(protocole, architechture,.....), et j ai des bases en c et c++,
 j essaye de comprendre l'algorythme des differentes parties, voila,

merci à vous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
9 mai 2007 à 15:54
Salut,

print_eth_header, print_ip_header, print_ip_header => ça, ça affiche les structures
print_data => ça ça affiche les données de manière lisible (en plusieurs lignes)
print_packet => ça, ça récupère le paquet et ça affiche les infos si c'est un paquet IP / ETH / autre, donc ça fait juste qu'appeler les fonctions du dessus.
la fonction main par contre on va la détailler.
Les commentaires expliquent en même temps
1) récupération de la liste des interfaces réseaux
2) récupération de la liste des adapteurs réseaux et ouverture pour ceux qui sont capturables
3) tant qu'on recoit des paquets, on vérifie que c'est bien un paquet IPv6 ou IPv4 (0x800 et 0x86DD) et on affiche les infos.
Bon voilà, si tu as un problème plus particulier dis quelle fonction te gêne.
@++

Une autruche ne se cuit pas aux petits lardons.
0
merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007
14 mai 2007 à 12:44
bonjour,
ça va mieus je comprend maintenant les pointeurs et les structures, par contre j'ai du mal a savoir :
 par example que fait la fonction "pcap_open(d->name, PACKET_SIZE, 0, 1000, NULL, errbuf);"dans la ligne 250
c'est à dire comment ça fonctionne.
et encore "pcap_freealldevs(alldevs);"
en realité tt ce qui concerne les fonction pcap. en fin je vais essayer de voir ça de plus pres.


merci a vous.


 
0
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
14 mai 2007 à 13:11
Salut,
pcap_open ca precise sur quelle interface ecouter. pcap_freealldevs ca libere les ressources je pense

Une autruche ne se cuit pas aux petits lardons.
0
merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007
26 mai 2007 à 20:13
bonjour,

on ce moment je veux implémanter ce code sur c++ builder, ou bien visuel c++, mais je ne sais trop comment faire, si vous pouvez s'il vous plait,

merci a vous.
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
26 mai 2007 à 22:06
Salut,

Je ne sais pas a qui tu demandes, mais pour ta seconde question il faut que tu te debrouilles pour recuperer la librairie pcap pour windows puis ensuite dans ton builder c++ il va y avoir un bouton pour ajouter des librairies et la tu selectiones libpcap.lib ou un nom comme ca, puis tu mets les bons .h et ca devrait compiler sans aucun probleme quand tu fais un programme avec winsock.h
 faut inclure la librairie wsock32.lib ben c'est pareil la

=
0
merwanne Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 11 juillet 2007
2 juin 2007 à 09:25
bonjour,
j'ai besoin de votre aide, je cherche des composant activeX, "packetX 1.0", mais je ne trouve pas, j'ai trouvé packetX 2.0, et 3.2 mais se sont des shareware et ils ne marchent pas, ils font des erreurs  quand on lance leur installation à partir de builder c++, j'ai trouvé  packetX 1.0 mais on voit que c'est le 3.2 quand on l'installe.

s'il vous plait donner moi un lien pour telecharger ces composants "packetX" qui marchent, free ou shareware l'essentiel  qu'ils marchent.

merci à vous.
0
Rejoignez-nous