IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Interception d'evenement lier à l'activité réseaux des applications d'un systeme


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Par défaut Interception d'evenement lier à l'activité réseaux des applications d'un systeme
    Bonjour,

    Je suis actuellement entrain de crée une application en langage C ayant pour but de détecter, en temps réel, l'activité réseaux des applications en cour d'exécution sur un système Windows XP sp3 (Évènement lier a une nouvelle connexion pour une application cliente ou une mise en écoute pour une application serveur).

    Par exemple:

    Si une "application A" (par exemple un navigateur WEB) tente de se connecter à un serveur distant, je souhaiterais pouvoir récupérer les informations lier à la tentative de connexion et informer l'utilisateur du système a l'instant de la tentative par un message du type :

    Application A (appliA.exe ou PID) tente d'accéder au serveur (IP_SERVEUR) sur le port distant (n° PORT) via le port local (n° PORT)

    Je suis actuellement sur plusieurs pistes qui ne me conviennent qu'a moitié :

    I°/ Piste 1 : GetExtendedTcpTable

    L'utilisation de la fonction GetExtendedTcpTable au sein d'une boucle infini ou d'un timer : cela qui me semble une solution certes fonctionnelle mais bancale et imposant des traitements surement inutiles au moment de la récupération des information lier aux nouvelles activités réseaux (différence entre la TCPtable de l'instant T1 et la TCPtable de l'instant T2). La détection d'un ajout a cette TCPtable serait à mon sens une solution plus viable, mais je n'ai trouver aucune fonction de l'API de Windows permettant de le faire (Section Networking de le MSDN). Existe t-il un moyen de détecter l'ajout d'un nouvelle entré dans cette TCPtable ou dans une éventuelle tables d'handler de socket (lecture de //device/tcp, ou que sais-je encore) ?

    II°/ Piste 2 : RAW Socket

    L'utilisation de RAW Socket afin de crée un petit sniffer en écoute de nouvelle connexion. Mais je n'ai trouver aucun moyen de remonté le PID de l'application génératrice de la connexion. Existe t-il un moyen de remonter cette information via des RAW socket (j'en doute mais on ne sait jamais, peut-être un moyen de remonter l'handler de socket du trafic sniffer) ?

    III°/ Piste 3 : Hook systéme

    L'utilisation de Hook système permettant la détection de l'activité réseaux. La seule solution via le API hooking que j'ai pus imaginer passe par le hooking de l'API winsock, mais cela m'impose ,d'une part de hooker l'ensemble des applications du système se qui me semble un peu tiré par les cheveux, et d'autre part de déléguer les droits de débogage à l'utilisateur courant se qui comporte des risques pour la sécurité du système hôte.


    Je souhaiterais d'une part avoir un avis sur les pistes exposés plus haut, et d'autre part savoir si un membre aurait une méthode a me proposer pour la détection en temps réel de l'activité réseaux généré par les applications en cour d'exécution sur un système Windows XP sp3.

    Merci à vous

    nairolf

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Par défaut
    re-bonjour

    Je me réponds afin de vous exposer l'avancement de mon projet ainsi que de ma recherche d'une solution viable.

    Ma solution actuelle est un variante de la piste 1 à la quelle j'ai ajouté une liste simplement chainée contenant un élément de type MIB_TCPROW_OWNER_MODULE et un thread exécutant une boucle infinie dans la quelle je fais un appel à GetExtendedTcpTable. Ce thread me permettant donc d'ajouter les nouvelles entrées de la TCPtable retournée par l'appel de GetExtendedTcpTable et de supprimer les éléments ayant été retirée. Cette liste chainée contient donc une liste à jours des activités réseaux des applications de mon système et de permettre de dégager les "Évènements" que je souhaitais intercepter lors de sa mise à jour.

    Je reste ouvert à toute remarque

    nairolf_

Discussions similaires

  1. Intercepter un formulaire web pour y remplir des champs
    Par rpoulin dans le forum Web & réseau
    Réponses: 7
    Dernier message: 04/03/2010, 15h12
  2. Réponses: 2
    Dernier message: 03/04/2007, 09h28
  3. Réponses: 9
    Dernier message: 23/05/2006, 15h33
  4. Réponses: 1
    Dernier message: 19/03/2006, 19h24
  5. [C#][2.0] Intercepter un évènement généré
    Par Invité dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/01/2006, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo