2010-09-13 7 views
0

Je suis connecté via Ethernet à un simple périphérique matériel d'E/S qui est contrôlé par un très vieux pilote .NET inflexible. J'ai utilisé WireShark pour jeter un coup d'œil aux paquets et ils sont très petits, des paquets simples contenant le nom du pilote et quelques octets pour les données (non cryptées). Chaque paquet reçoit un paquet de succès du périphérique matériel avec quelques octets de données de confirmation. Il ne semble pas y avoir de persistance avec la connexion, cela semble très trasnsactionnel. Je voudrais façonner mon propre pilote pour cet appareil, et lui envoyer mes propres paquets pour éliminer le pilote Junky. Je comprends les mises en page struct et comment les formater explicitement, ma question est de savoir quelle serait la méthode la plus simple et la plus moderne d'envoyer des données à ce périphérique réseau. Je cherche juste quelques informations pour me lancer. Des idées?C# Spoofing de paquets réseau

Répondre

1

Évitez de penser en termes de "pilote", les vrais pilotes de système d'exploitation ne peuvent pas être écrits dans un langage .NET. Le code original a sans doute utilisé un simple Socket. Donc, peux tu. La seule partie difficile est de déterminer le protocole exact, la signification de chaque octet individuel.

Utilisez Reflector sur l'assemblage .NET d'origine, vous pouvez probablement le désosser. Vérifiez d'abord si votre accord de licence le permet, ce n'est pas exactement commun.

+0

Merci Hans, j'utilise vaguement (incorrectement) le mot "Driver" pour désigner tout logiciel qui contrôle un périphérique externe. Mauvaise habitude. De toute façon, quand vous parlez de Simple Socket - faites-vous référence à System.Net.Sockets? Est-ce la meilleure façon de faire un envoi de paquet de style transactionnel? Qu'en est-il du paquet de retour. Je suis évidemment un peu un noob avec le réseautage. – bufferz

+0

Pas si sûr de ce que «transactionnel» signifie ici, TCP garantit la livraison. –

+0

Par transactionnel, je veux dire qu'il ne semble y avoir aucune persistance de la connexion entre l'envoi explicite de données. Il n'y a aucune activité qui va et vient entre les deux appareils maintenant n'importe quel état. – bufferz

Questions connexes