next up previous contents
Next: Scanner Up: Générateur Previous: Pourquoi un générateur de   Contents

Mais comment fonctionne-t-il?

Tout d'abord, il dispose d'une interface composée de nombreuses boîtes de dialogues formant ainsi les entêtes des protocoles Ethernet, IP, TCP, UDP, ICMP. Chaque boîte de dialogue contient un élément d'un entête d'un paquet; par exemple, une des boîtes contiendra le numéro d'IP du destinataire.
Lorsque l'utilisateur désire générer une pile de paquets, il lui suffit d'indiquer le nombre de paquets identiques à fabriquer, de sélectionner le protocole du paquet et de remplir les champs des entêtes prévus sur l'interface. Dès que l'utilisateur clique sur le bouton générer, le générateur rassemble toutes les informations de toutes les boîtes de dialogue dans une structure d'entête et génère ainsi un paquet en utilisant la classe de paquet.
Ensuite, ce paquet suivi de son nombre de paquets à faire sont ajoutés à une liste qui pourra contenir ainsi plusieurs données, de manière à ce que l'utilisateur puisse générer une liste de paquets différents. Bien sûr, le type liste suivi de ses fonctions d'ajout et de suppression furent créés auparavant. Enfin, le paquet généré est affiché dans un Arbre (TreeView).
Dans cet arbre, l'utilisateur pourra trouver les informations de chaque entêtes, la version hexadecimal du paquet et le nombre de paquets générés. Enfin, pour envoyer les paquets générés, l'utilisateur n'aura juste qu'à cliquer sur le bouton envoyer. Cela activera l'envoi de la liste de paquets dans le thread du sniffer. Bien sûr, cette utilisation du générateur demande une très bonne connaissance sur les systèmes réseau.
Par la suite, nous avons alors eu l'idée de concevoir une procédure défaut. L'utilisateur n'aura besoin de remplir que certains champs : Après, cette procédure se chargera de remplir les autres nombreux champs restants en fonction des données insérées par l'utilisateur. Certains champs remplis par la procédure défaut contiendront toujours les mêmes données alors que d'autres champs (dans l'entête IP: le numéro d'identification, dans l'entête TCP: numéro de séquence, numéro d'acquittement, taille de fenêtre) contiendront des données tirées au hazard.
Bien sûr, les checksums de chaque entête seront calculés automatiquement, non pas par la procédure défaut, mais à l'aide de la fonction checksum de la classe de paquet. Le checksum est un moyen pour l'ordinateur distant de vérifier si le paquet est passé dans son intégrité. En considérant la totalité de l'entête comme une suite d'entiers de 16 bits, on fait la somme des ces entiers en complément à 1 et on obtient donc le checksum.
Pour utiliser cette Procédure défaut, il suffira de clicker sur le bouton défaut.
De cette procédure défaut, en découle alors un mode simple et un mode expert que l'utilisateur sélectionnera selon ses besoins. Le mode simple désactivera les champs de chaque entête remplis par la procédure défaut et lancera automatiquement cette procédure lorsque l'utilisateur générera des paquets. Au contraire, le mode expert laissera tous les champs de chaque entête activés; dans ce cas, l'utilisateur, s'il le désire, pourra utiliser la procédure défaut par un simple clique sur le bouton défaut.
Enfin, pour éviter que l'utilisateur puisse entrer des valeurs incorrectes, une fonction parcourra tous les champs des boîtes de dialogues pour vérifier leur conformité. L'indication d'un 'F' en rouge apparaîtra dans chaque champ erroné.
next up previous contents
Next: Scanner Up: Générateur Previous: Pourquoi un générateur de   Contents
root 2002-06-23