Next: Scanner
Up: Générateur
Previous: Pourquoi un générateur de
  Contents
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 :
- entête Ethernet : Adresse MAC du destinataire et de l'expéditeur
- entête IP : IP du destinataire et de l'expéditeur, longueur du datagramme
- entête TCP : Port du destinataire et de l'expéditeur, drapeaux
- entête UDP : Port du destinataire et de l'expéditeur
- entête ICMP : Type, code, commentaire
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: Scanner
Up: Générateur
Previous: Pourquoi un générateur de
  Contents
root
2002-06-23