|
|||||||||||
|
|
CommView vous permet d'utiliser deux types de vos propres décodeurs personnalisés. Décodeur simple Si vous implémentez ce type de décodeur, les données résultantes de votre décodeur seront affichées dans la colonne supplémentaire de l'onglet Paquets. Votre décodeur doit être un fichier DLL de 32 bits nommé << Custom.dll >> exportant la seule procédure nommée << Decode >>. Le prototype de cette procédure est montrée ci-dessous dans les langages C et Pascal : extern "C" { void __stdcall Decode(unsigned char *PacketData, int PacketLen, char *Buffer, int BufferLen); } procedure Decode (PacketData: PChar; PacketLen: integer; Buffer: PChar; BufferLen: integer); stdcall; La DLL doit être située dans le dossier d'application de CommView. Lorsque vous lancez CommView, ce dernier recherche pour << Custom.dll >> dans le dossier de l'application et le charge dans sa mémoire. Si le point d'entrée de << Decode >> est trouvé, CommView ajoute une nouvelle colonne nommée << Personnalisé >> à la liste de paquets. Lorsqu'un nouveau paquet est capturé et est sur le point d'être affiché, CommView appelle la procédure << Decode >> et passe le contenu du paquet à la DLL. La procédure << Decode >> doit traiter les données du paquet et copier les résultats dans la mémoire tampon spécifiée. Le premier argument est le pointeur aux données du paquet, le second argument est la longueur des données, le troisième argument est le pointeur à la mémoire tampon où les résultats du décodage doivent être copiés et le quatrième argument est la taille de la mémoire tampon (actuellement toujours 1024 octets). La mémoire tampon est allouée et libérée par CommView, alors ne tentez pas de la réallouer ou de la libérer. Les résultats que vous avez copiés dans la mémoire tampon seront affichés sous forme de chaîne dans la colonne << Personnalisé >>. Votre procédure doit être suffisamment rapide pour traiter des milliers de paquets par seconde ; autrement, elle pourrait ralentir l'application. N'oubliez pas d'utiliser la convention d'attribution de noms STDCALL. Deux démos DLL sont disponibles. Elles démontrent une opération fort simple : les données résultantes de la fonction « Decode » sont le code hex du dernier octet du paquet. Votre propre décodeur peut être aussi complexe que désiré.
Décodeur complexe Si vous implémentez ce type de décodeur, les données résultantes de votre décodeur seront affichées en tant qu'éléments supplémentaires dans l'arborescence du décodeur de paquets. Pour des informations à propos de ce décodeur, veuillez télécharger le fichier suivant : http://www.tamos.com/products/commview/complex_decoder_c5.zip Ce type de décodeur ne peut être écrit qu'au moyen de Microsoft Visual C++, puisqu'il est créé avec des classes C++. Support technique Un support technique relatif aux décodeurs est offert dans la « meilleure mesure ». Nous pourrions ne pas être en mesure de répondre à vos questions connexes à la programmation. |