Comment dois-je brancher la pile TCP de Windows pour renifler et modifier des paquets?
Je voudrais écrire un renifleur de paquets et editor pour Windows. Je veux pouvoir voir le contenu de tous les paquets qui entrent et sortent de mon système et éventuellement de les modifier. Toute langue est bien, mais j'aimerais qu'il couru assez vite qu'il ne sera pas en charge le système.
J'ai lu un peu sur WinPcap, mais la documentation de réclamation que vous ne pouvez pas utiliser WinPcap pour créer un pare-feu, car il ne peut pas déposer des paquets. Quels sont les outils de m'aider à rédiger ce logiciel?
OriginalL'auteur Eyal | 2009-03-29
Vous devez vous connecter pour publier un commentaire.
Été là, fait cela 🙂 de Retour en 2000, mon premier programme Windows a jamais été un filtre crochet pilote.
Ce que j'ai fait a été mise en œuvre le filtre crochet pilote et l'écriture d'une application utilisateur qui les a préparés une table de filtre sur ce qui à autoriser ou à interdire. Quand vous arrivez dans votre première série d'écrans bleus (voir ci-dessous pour mon debug astuce en mode noyau) le mode de filtre de pilote est très facile à utiliser ... il donne chaque paquet à une fonction que vous avez écrit et selon le code de retour de gouttes ou de la laisse passer.
Unfortunatley paquets à ce niveau sont ASSEZ crus, les fragments ne sont pas remonté et il ressemble plus à la "carte réseau" fin des choses (mais pas d'en-têtes ethernet plus). Vous aurez donc tout à fait un peu de mal à décoder les paquets à filtrer avec cette solution.
Il y a aussi le pare-feu crochet pilote, comme indiqué dans le présent codeproject article.
Si vous êtes sous Vista ou Server 2008, vous feriez mieux d'avoir un coup d'oeil à PAM (La Plateforme De Filtrage Windows) au lieu de cela, ce qui semble être le mandat de l'API de la journée pour écrire des pare-feu.
Je ne sais pas à ce sujet autre que google turing elle quelques minutes plus tôt, quand j'ai googlé pour le filtre crochet pilote.
Mise à jour: vous avez Oublié le débogage astuce:
Sysinternals DbgView montre en mode noyau DbgPrint de sortie, et encore plus important, il peut aussi les lire à partir du fichier de vidage de votre dernier écran bleu produit. Afin de saupoudrer votre code avec dbgprint et si il bluescreens il suffit de charger le dump dans le dbgview pour voir ce qui s'est passé avant qu'il est mort ... TRÈS utile. En utilisant cela, j'ai réussi sans avoir un débogueur de noyau.
D'accord. Je pense que le pare-feu crochet pilote est le chemin à parcourir, mais il est déconseillé de WinXP et au-delà pour la course trop haut dans la pile réseau. NDIS est recommandé pour WinXP. NDIS semble que plus de travail, cependant.
OriginalL'auteur froh42
Je suis sûr que vous auriez besoin d'écrire un pilote de filtre. http://en.wikipedia.org/wiki/Filter_driver Je ne sais pas beaucoup plus que cela :). Il serait certainement être un C/C++ Win32 application et vous auriez probablement faire quelques noyau de travailler sur le côté. Commencez par télécharger le DDK et de trouver une partie de l'échantillon les pilotes de filtre.
Si vous voulez juste pour surveiller ce qui se passe dans et hors de IIS, considérons un filtre ISAPI. Encore du C/C++ dans Win32, mais relativement plus facile que d'écrire un pilote de périphérique.
OriginalL'auteur Frank Schwieterman
De code C# pour ce faire est ici
J'ai besoin d'un PAM/solution exemple, malheureusement.
OriginalL'auteur JoshJordan
J'ai effectivement fait cela, il y a plusieurs années. Je suis flou sur les détails à ce stade, mais j'ai eu à développer un filtre/pass-thru/pilote intermédiaire en utilisant le kit DDK de Windows. J'ai eu beaucoup de bonnes informations à partir de pcausa. Voici une url qui pointe vers leur produit qui fait cela: http://www.pcausa.com/pcasim/Default.htm
OriginalL'auteur Jack BeNimble
Si vous êtes en train de faire ce pour des raisons pratiques, et pas seulement pour le plaisir, alors vous devriez jeter un oeil à Le Moniteur Réseau Microsoft. La page d'accueil parle de la version 3.3 beta, mais vous pouvez télécharger la version 3.2 de la page Téléchargements. Il y a également un SDK pour NM, et la capacité à écrire des analyseurs syntaxiques pour vos propres protocoles réseau.
OriginalL'auteur John Saunders
Il y a une question que vous devez vous demander à qui vous ne savez pas que vous devez vous poser; voulez-vous connaître les applications des sockets? ou êtes-vous heureux d'être limité à l'adresse IP:port quad pour une connexion?
Si vous voulez savoir les applications, vous avez besoin d'écrire un TDI pilote de filtre, mais qui rend la manipulation de la recevoir presque impossible, puisque vous ne pouvez pas bloquer sur le chemin de recevoir.
Si vous êtes heureux avec IP:port, aller dans le NDIS niveau, et je crois que vous pouvez sur le bloc de recevoir à votre contenu de coeurs.
Un mot d'avertissement; si vous n'avez pas avant le noyau de l'expérience, de l'écriture de l'un de ces pilotes (bien que le TDI est nettement plus difficile) prendra environ deux ans, à temps plein.
OriginalL'auteur
ce:
TdiFw est un simple TDI Open Source, Basé sur Firewall Personnel pour Windows NT4/2000/XP/2003
http://tdifw.sourceforge.net/
peut vous aider à
OriginalL'auteur dragonfly