Bonjour à tous,


Je me tourne vers vous, car je souhaite réaliser un module qui permet de créer un paquet réseau (TCP, ICMP, UDP, peu importe...) et qui l'enverrai sur le réseau, plus précisément sur mon interface lo.

J'ai fait pas mal de recherche, sans trouver vraiment une réponse satisfaisante.

Pour réaliser ce module, et travailler dans le noyau, j'utilise entre autre la bibliothèque skbuff.h et la structure struct sk_buff. J'utilise aussi la structure iphdr et (icmp|tcp|udp)hdr.

Je sais que pour réaliser ce module, je dois utiliser dans l'ordre les fonctions suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
skb_alloc()
skb_reserve()
skb_put()
skb_push()
Mais j'ai du mal à voir la structure général du module. Comment appeler la fonction qui génèrera mon paquet ? Comment créer mon paquet avec les configurations que je désire (ajout de data, etc..). Et surtout, comment l'envoyer sur le réseau ?
J'ai vu parler de la fonction dev_queue_xmit(), mais je ne comprend vraiment pas comment l'utiliser, et où l'utiliser.

Je reste à votre disposition pour vous éclairer sur mon problème si besoin, et je pourrai également poster un code (demain) de ce que j'ai réalisé pour le moment si vous souhaitez.

Je vous remercie pour l'aide que vous pourrez m'apporter,

Bonne journée !