Comment analyser / paquets d'interception avant d'être envoyés / reçus par le système d'exploitation?

StackOverflow https://stackoverflow.com/questions/1457491

Question

Je me suis toujours demandé comment les pare-feu logiciels fonctionnent sous les couvertures, et aimeraient être en mesure d'écrire mes propres outils personnalisés pour analyser ou paquets d'interception avant d'être envoyés ou reçus par le système d'exploitation. Je connais assez les principes de mise en réseau de base; Je n'ai tout simplement pas la moindre idée où commencer si je veux écrire un logiciel qui correspond à l'intérieur de la pile réseau similaire à la façon des pare-feu font. Quelqu'un pourrait-il me donner quelques conseils?

Je serais particulièrement intéressé si cela peut être accompli en utilisant C #, mais je peux faire d'autres langues aussi. Je me concentre principalement sur Windows, mais je voudrais savoir s'il y avait des bibliothèques multi-plateformes là-bas aussi.

EDIT Utilisation d'un pilote NDIS (comme Wireshark fait) sonne comme une bonne option, et les capacités de filtrage de paquets de Vista sonore propre, mais comment les pare-feu le font, par exemple, sous Windows XP? Ils ne doivent pas installer un pilote spécial que je connais.

Était-ce utile?

La solution

vous pouvez Sous Windows Vista et plus, pour regarder le

Autres conseils

Si je me souviens qu'il consiste à écrire un pilote NDIS. Cette pratique se trouve au-dessus de la carte réseau (Network Interface Card) et vous avez le contrôle absolu de ce qui se passe ou sort de la carte réseau avant toute autre chose -. Jusqu'au niveau des paquets Ethernet

Cela ne peut être accompli avec C #. Vous avez vraiment besoin d'utiliser C ou C ++ pour cette tâche.

UPDATE : Je l'ai fait dans la dernière fenêtre jours XP. Je vois d'une autre réponse il y a une nouvelle, et par les regards de celui-ci, API plus simple si vous utilisez Windows Vista partir.

Jetez un oeil à WinPcap - il utilise un pilote NDIS pour mettre en œuvre ses capacités de filtrage de paquets. Cette bibliothèque peut probablement fournir une excellente base pour tout programme d'inspection de paquets / pare-feu vous voudriez écrire, et il est open source. De http://www.winpcap.org/docs/docs_40_2/html/group__internals .html :

  

Tout d'abord, un système de capture doit   contourner les systèmes d'exploitation de   pile de protocoles afin d'accéder à la   données brutes transitant sur le réseau.   Cela nécessite une partie en cours d'exécution à l'intérieur   le noyau du système d'exploitation, interagir directement   avec les pilotes d'interface réseau.   Cette partie est très dépendante du système,   et dans notre solution, il est réalisé comme   un pilote de dispositif, appelé Netgroup   Filtre de paquet (FNP); nous fournissons   différentes versions du pilote pour   Windows 95, Windows 98, Windows ME,   Windows NT 4, Windows 2000 et Windows   XP. Ces pilotes offrent à la fois de base   des fonctionnalités telles que la capture de paquets et   injection, ainsi que plus avancé   ceux comme un filtrage programmable   système et un système de surveillance. le   une première peut être utilisée pour restreindre un   capturer session à un sous-ensemble de la   le trafic réseau (par exemple, il est possible   pour capturer seulement le trafic ftp   produite par un hôte particulier), le   deuxième fournit un puissant mais   simple à utiliser le mécanisme pour obtenir   des statistiques sur le trafic (par exemple, il est   obtenir la charge du réseau ou   la quantité de données échangées entre   deux hôtes).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top