Comment analyser / paquets d'interception avant d'être envoyés / reçus par le système d'exploitation?
-
12-09-2019 - |
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.
La solution
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.
Je ne sais pas si elle est « avant l'O / S », mais jetez un oeil à WireShark et bibliothèque, il utilise, libpcap.
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).