si on a récupéré un descripteur de socket, comment récupérer en C/C++
win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous
Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est
encore un peu vague dans ma tête, mais en fait je souhaite pouvoir
savoir de quelle application vient tel flux réseau (faire un peu comme
le pare-feu windows XP, où on autorise une application à utiliser des
ressources réseaux, mais pas une autre application).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry
Bonjour,
Vincent Hiribarren a écrit :
Bonjour à tous,
si on a récupéré un descripteur de socket, comment récupérer en C/C++ win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est encore un peu vague dans ma tête, mais en fait je souhaite pouvoir savoir de quelle application vient tel flux réseau (faire un peu comme le pare-feu windows XP, où on autorise une application à utiliser des ressources réseaux, mais pas une autre application).
sous XP, utiliser AllocateAndGetTcpExTableFromStack -- « Le travail est probablement ce qu'il y a sur cette terre de plus bas et de plus ignoble. Il n'est pas possible de regarder un travailleur sans maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager, dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. » Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<
Bonjour,
Vincent Hiribarren a écrit :
Bonjour à tous,
si on a récupéré un descripteur de socket, comment récupérer en C/C++
win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous
Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est
encore un peu vague dans ma tête, mais en fait je souhaite pouvoir
savoir de quelle application vient tel flux réseau (faire un peu comme
le pare-feu windows XP, où on autorise une application à utiliser des
ressources réseaux, mais pas une autre application).
sous XP, utiliser AllocateAndGetTcpExTableFromStack
--
« Le travail est probablement ce qu'il y a sur cette terre de plus bas et
de plus ignoble. Il n'est pas possible de regarder un travailleur sans
maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager,
dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. »
Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<
si on a récupéré un descripteur de socket, comment récupérer en C/C++ win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est encore un peu vague dans ma tête, mais en fait je souhaite pouvoir savoir de quelle application vient tel flux réseau (faire un peu comme le pare-feu windows XP, où on autorise une application à utiliser des ressources réseaux, mais pas une autre application).
sous XP, utiliser AllocateAndGetTcpExTableFromStack -- « Le travail est probablement ce qu'il y a sur cette terre de plus bas et de plus ignoble. Il n'est pas possible de regarder un travailleur sans maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager, dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. » Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<
Vincent Hiribarren
Thierry wrote:
si on a récupéré un descripteur de socket, comment récupérer en C/C++ win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est encore un peu vague dans ma tête, mais en fait je souhaite pouvoir savoir de quelle application vient tel flux réseau (faire un peu comme le pare-feu windows XP, où on autorise une application à utiliser des ressources réseaux, mais pas une autre application).
sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me sorte aucune réponses. En revanche je vais être embêtant, mais existe-t-il ça sous Windows CE / Windows Mobile ? Encore merci d'avance.
Thierry wrote:
si on a récupéré un descripteur de socket, comment récupérer en C/C++
win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous
Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est
encore un peu vague dans ma tête, mais en fait je souhaite pouvoir
savoir de quelle application vient tel flux réseau (faire un peu comme
le pare-feu windows XP, où on autorise une application à utiliser des
ressources réseaux, mais pas une autre application).
sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me
sorte aucune réponses. En revanche je vais être embêtant, mais
existe-t-il ça sous Windows CE / Windows Mobile ? Encore merci d'avance.
si on a récupéré un descripteur de socket, comment récupérer en C/C++ win32 le PID du programme qui a ouvert la socket ?
En espérant être clair, je suis assez béotien en programmation sous Windows. C'est en relation avec Winsock 2 et les LSP. Tout ceci est encore un peu vague dans ma tête, mais en fait je souhaite pouvoir savoir de quelle application vient tel flux réseau (faire un peu comme le pare-feu windows XP, où on autorise une application à utiliser des ressources réseaux, mais pas une autre application).
sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me sorte aucune réponses. En revanche je vais être embêtant, mais existe-t-il ça sous Windows CE / Windows Mobile ? Encore merci d'avance.
Aurelien Regat-Barrel
>> sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me sorte aucune réponses.
Parce que c'est une fonction non documentée. Sous XP SP2, y'a GetExtendedTcpTable.
-- Aurélien Regat-Barrel
>> sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me
sorte aucune réponses.
Parce que c'est une fonction non documentée. Sous XP SP2, y'a
GetExtendedTcpTable.
>> sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me sorte aucune réponses.
Parce que c'est une fonction non documentée. Sous XP SP2, y'a GetExtendedTcpTable.
-- Aurélien Regat-Barrel
Vincent Hiribarren
Aurelien Regat-Barrel wrote:
sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me sorte aucune réponses.
Parce que c'est une fonction non documentée. Sous XP SP2, y'a GetExtendedTcpTable.
Je vais essayer d'être plus précis.
En fait, j'aimerais comprendre comment fonctionnent les logiciels "pare-feux" classiques sous windows règlementant l'accès réseau en fonction du logiciel : habituellement, on lance un logiciel, un message apparait ("attention, ce logiciel veut accéder à internet, vous le laissez faire ?").
Ces pare-feux gèrent l'accès réseau du point de vue destination réseau bien sûr, mais aussi du point de vu des logiciels : tel logiciel aura le droit de faire ce qu'il veut, mais pas l'autre.
Je me trompe peut-être, mais au niveau pare-feu, on sait quel logiciel essaie d'accéder à Internet, et si ce logiciel a droit ou pas d'y accéder. Comment est-ce possible ? Comment à partir d'un accès réseau on peut remonter au logiciel qui fait l'accès réseau, et donc faire le contrôle réseau en fonction du logiciel ?
Ce serait surtout pour appliquer le "principe de régulation des accès en fonction des logiciels" pour windows ce, mais si vous savez aussi comment faire avec XP, ça m'intéresse.
Si vous avez des pistes...
Merci d'avance !
Aurelien Regat-Barrel wrote:
sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me
sorte aucune réponses.
Parce que c'est une fonction non documentée. Sous XP SP2, y'a
GetExtendedTcpTable.
Je vais essayer d'être plus précis.
En fait, j'aimerais comprendre comment fonctionnent les logiciels
"pare-feux" classiques sous windows règlementant l'accès réseau en
fonction du logiciel : habituellement, on lance un logiciel, un
message apparait ("attention, ce logiciel veut accéder à internet,
vous le laissez faire ?").
Ces pare-feux gèrent l'accès réseau du point de vue destination réseau
bien sûr, mais aussi du point de vu des logiciels : tel logiciel aura
le droit de faire ce qu'il veut, mais pas l'autre.
Je me trompe peut-être, mais au niveau pare-feu, on sait quel logiciel
essaie d'accéder à Internet, et si ce logiciel a droit ou pas d'y
accéder. Comment est-ce possible ? Comment à partir d'un accès réseau
on peut remonter au logiciel qui fait l'accès réseau, et donc faire le
contrôle réseau en fonction du logiciel ?
Ce serait surtout pour appliquer le "principe de régulation des accès
en fonction des logiciels" pour windows ce, mais si vous savez aussi
comment faire avec XP, ça m'intéresse.
sous XP, utiliser AllocateAndGetTcpExTableFromStack
Merci, je vais voir ça, bien qu'un premier coup d'oeil dans MSDN ne me sorte aucune réponses.
Parce que c'est une fonction non documentée. Sous XP SP2, y'a GetExtendedTcpTable.
Je vais essayer d'être plus précis.
En fait, j'aimerais comprendre comment fonctionnent les logiciels "pare-feux" classiques sous windows règlementant l'accès réseau en fonction du logiciel : habituellement, on lance un logiciel, un message apparait ("attention, ce logiciel veut accéder à internet, vous le laissez faire ?").
Ces pare-feux gèrent l'accès réseau du point de vue destination réseau bien sûr, mais aussi du point de vu des logiciels : tel logiciel aura le droit de faire ce qu'il veut, mais pas l'autre.
Je me trompe peut-être, mais au niveau pare-feu, on sait quel logiciel essaie d'accéder à Internet, et si ce logiciel a droit ou pas d'y accéder. Comment est-ce possible ? Comment à partir d'un accès réseau on peut remonter au logiciel qui fait l'accès réseau, et donc faire le contrôle réseau en fonction du logiciel ?
Ce serait surtout pour appliquer le "principe de régulation des accès en fonction des logiciels" pour windows ce, mais si vous savez aussi comment faire avec XP, ça m'intéresse.
Si vous avez des pistes...
Merci d'avance !
Aurelien Regat-Barrel
> En fait, j'aimerais comprendre comment fonctionnent les logiciels "pare-feux" classiques sous windows règlementant l'accès réseau en fonction du logiciel : habituellement, on lance un logiciel, un message apparait ("attention, ce logiciel veut accéder à internet, vous le laissez faire ?").
Le kernel il sait ce que les process ont alloué comme ressource. Y'a pluieurs possibilités, mais je pense qu'un pare-feu sérieux doit travailler au niveau noyau, c.a.d installer son driver qui filtre le traffic, voire l'intercepte avant l'OS et protège ce dernier de paquets "malicieux". Thierry t'avais donné un bon lien lors de ta question précédente sur les pare-feux: http://www.ntkernel.com/w&p.php?id
Ces pare-feux gèrent l'accès réseau du point de vue destination réseau bien sûr, mais aussi du point de vu des logiciels : tel logiciel aura le droit de faire ce qu'il veut, mais pas l'autre.
Je me trompe peut-être, mais au niveau pare-feu, on sait quel logiciel essaie d'accéder à Internet, et si ce logiciel a droit ou pas d'y accéder. Comment est-ce possible ? Comment à partir d'un accès réseau on peut remonter au logiciel qui fait l'accès réseau, et donc faire le contrôle réseau en fonction du logiciel ?
Pour détecter qu'un logiciel se connecte au net, faut remplacer l'appel système concerné par le tiens.
Ce serait surtout pour appliquer le "principe de régulation des accès en fonction des logiciels" pour windows ce, mais si vous savez aussi comment faire avec XP, ça m'intéresse.
Si vous avez des pistes...
On peut configurer le firewall intégré de XP SP2: http://msdn.microsoft.com/library/en-us/dnanchor/html/intconnsharingfirewall.asp
-- Aurélien Regat-Barrel
> En fait, j'aimerais comprendre comment fonctionnent les logiciels
"pare-feux" classiques sous windows règlementant l'accès réseau en
fonction du logiciel : habituellement, on lance un logiciel, un message
apparait ("attention, ce logiciel veut accéder à internet, vous le
laissez faire ?").
Le kernel il sait ce que les process ont alloué comme ressource. Y'a
pluieurs possibilités, mais je pense qu'un pare-feu sérieux doit
travailler au niveau noyau, c.a.d installer son driver qui filtre le
traffic, voire l'intercepte avant l'OS et protège ce dernier de paquets
"malicieux". Thierry t'avais donné un bon lien lors de ta question
précédente sur les pare-feux:
http://www.ntkernel.com/w&p.php?id
Ces pare-feux gèrent l'accès réseau du point de vue destination réseau
bien sûr, mais aussi du point de vu des logiciels : tel logiciel aura le
droit de faire ce qu'il veut, mais pas l'autre.
Je me trompe peut-être, mais au niveau pare-feu, on sait quel logiciel
essaie d'accéder à Internet, et si ce logiciel a droit ou pas d'y
accéder. Comment est-ce possible ? Comment à partir d'un accès réseau on
peut remonter au logiciel qui fait l'accès réseau, et donc faire le
contrôle réseau en fonction du logiciel ?
Pour détecter qu'un logiciel se connecte au net, faut remplacer l'appel
système concerné par le tiens.
Ce serait surtout pour appliquer le "principe de régulation des accès en
fonction des logiciels" pour windows ce, mais si vous savez aussi
comment faire avec XP, ça m'intéresse.
Si vous avez des pistes...
On peut configurer le firewall intégré de XP SP2:
http://msdn.microsoft.com/library/en-us/dnanchor/html/intconnsharingfirewall.asp
> En fait, j'aimerais comprendre comment fonctionnent les logiciels "pare-feux" classiques sous windows règlementant l'accès réseau en fonction du logiciel : habituellement, on lance un logiciel, un message apparait ("attention, ce logiciel veut accéder à internet, vous le laissez faire ?").
Le kernel il sait ce que les process ont alloué comme ressource. Y'a pluieurs possibilités, mais je pense qu'un pare-feu sérieux doit travailler au niveau noyau, c.a.d installer son driver qui filtre le traffic, voire l'intercepte avant l'OS et protège ce dernier de paquets "malicieux". Thierry t'avais donné un bon lien lors de ta question précédente sur les pare-feux: http://www.ntkernel.com/w&p.php?id
Ces pare-feux gèrent l'accès réseau du point de vue destination réseau bien sûr, mais aussi du point de vu des logiciels : tel logiciel aura le droit de faire ce qu'il veut, mais pas l'autre.
Je me trompe peut-être, mais au niveau pare-feu, on sait quel logiciel essaie d'accéder à Internet, et si ce logiciel a droit ou pas d'y accéder. Comment est-ce possible ? Comment à partir d'un accès réseau on peut remonter au logiciel qui fait l'accès réseau, et donc faire le contrôle réseau en fonction du logiciel ?
Pour détecter qu'un logiciel se connecte au net, faut remplacer l'appel système concerné par le tiens.
Ce serait surtout pour appliquer le "principe de régulation des accès en fonction des logiciels" pour windows ce, mais si vous savez aussi comment faire avec XP, ça m'intéresse.
Si vous avez des pistes...
On peut configurer le firewall intégré de XP SP2: http://msdn.microsoft.com/library/en-us/dnanchor/html/intconnsharingfirewall.asp
-- Aurélien Regat-Barrel
Thierry
Bonjour,
Aurelien Regat-Barrel a écrit :
Le kernel il sait ce que les process ont alloué comme ressource. Y'a pluieurs possibilités, mais je pense qu'un pare-feu sérieux doit travailler au niveau noyau, c.a.d installer son driver qui filtre le traffic, voire l'intercepte avant l'OS et protège ce dernier de paquets "malicieux".
Kerio fonctionne comme cela. Même si ça pourrait être gere au niveau LSP apparement aucun FW ne les utilisent (Norton non plus).
(pour lister les LSP installées : Adaware de Lavasoft + plug-in LSP. Peut-etre existe-t-il d'autres utilitaire permettant de lister (sysinternals ?))
-- « Le travail est probablement ce qu'il y a sur cette terre de plus bas et de plus ignoble. Il n'est pas possible de regarder un travailleur sans maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager, dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. » Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<
Bonjour,
Aurelien Regat-Barrel a écrit :
Le kernel il sait ce que les process ont alloué comme ressource. Y'a
pluieurs possibilités, mais je pense qu'un pare-feu sérieux doit
travailler au niveau noyau, c.a.d installer son driver qui filtre le
traffic, voire l'intercepte avant l'OS et protège ce dernier de paquets
"malicieux".
Kerio fonctionne comme cela. Même si ça pourrait être gere au niveau LSP
apparement aucun FW ne les utilisent (Norton non plus).
(pour lister les LSP installées : Adaware de Lavasoft + plug-in LSP.
Peut-etre existe-t-il d'autres utilitaire permettant de lister
(sysinternals ?))
--
« Le travail est probablement ce qu'il y a sur cette terre de plus bas et
de plus ignoble. Il n'est pas possible de regarder un travailleur sans
maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager,
dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. »
Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<
Le kernel il sait ce que les process ont alloué comme ressource. Y'a pluieurs possibilités, mais je pense qu'un pare-feu sérieux doit travailler au niveau noyau, c.a.d installer son driver qui filtre le traffic, voire l'intercepte avant l'OS et protège ce dernier de paquets "malicieux".
Kerio fonctionne comme cela. Même si ça pourrait être gere au niveau LSP apparement aucun FW ne les utilisent (Norton non plus).
(pour lister les LSP installées : Adaware de Lavasoft + plug-in LSP. Peut-etre existe-t-il d'autres utilitaire permettant de lister (sysinternals ?))
-- « Le travail est probablement ce qu'il y a sur cette terre de plus bas et de plus ignoble. Il n'est pas possible de regarder un travailleur sans maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager, dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. » Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<
Vincent Hiribarren
Aurelien Regat-Barrel wrote:
Thierry t'avais donné un bon lien lors de ta question précédente sur les pare-feux: http://www.ntkernel.com/w&p.php?id
Etrange, je l'avais râté. Il doit me manquer un article. Sinon effectivement, c'est extrêmement intéressant. D'ailleurs, j'y lis :
1) Winsock Layered Service Provider (LSP). This approach is well documented in MSDN and has a good example (SPI.CPP). As method advantage I would mention the possibility to determine process that called Windows Sockets. [...]
Ca correspond justement à ce que je veux faire, un flux réseau passe, je veux pouvoir le traiter avant de l'envoyer, et cela en fonction du programme.
J'avais déjà regardé les LSP, et malheureusement, je n'avais rien vu sur la possibilité de savoir de quel logiciel provenaient les flux réseaux (d'où cette deuxième enfilade). Ou alors mon oeil de béotien n'a pas su le percevoir. Quelqu'un a des pistes ? Merci !
Pour détecter qu'un logiciel se connecte au net, faut remplacer l'appel système concerné par le tiens.
Et là on revient à l'enfilade que j'avais précédemment lancé. J'ai compris les techniques, mais comment savoir quel logiciel exactement a fait l'appel ? C'est peut-être quelque chose de très facile à faire, mais il me manque encore des billes pour trouver cette information. Mais j'apprends :-)
Encore merci pour toute réponse éventuelle !
Aurelien Regat-Barrel wrote:
Thierry t'avais donné un bon lien lors de ta question
précédente sur les pare-feux:
http://www.ntkernel.com/w&p.php?id
Etrange, je l'avais râté. Il doit me manquer un article.
Sinon effectivement, c'est extrêmement intéressant. D'ailleurs, j'y lis :
1) Winsock Layered Service Provider (LSP). This approach is well
documented in MSDN and has a good example (SPI.CPP). As method
advantage I would mention the possibility to determine process that
called Windows Sockets. [...]
Ca correspond justement à ce que je veux faire, un flux réseau passe,
je veux pouvoir le traiter avant de l'envoyer, et cela en fonction du
programme.
J'avais déjà regardé les LSP, et malheureusement, je n'avais rien vu
sur la possibilité de savoir de quel logiciel provenaient les flux
réseaux (d'où cette deuxième enfilade). Ou alors mon oeil de béotien
n'a pas su le percevoir. Quelqu'un a des pistes ? Merci !
Pour détecter qu'un logiciel se connecte au net, faut remplacer l'appel
système concerné par le tiens.
Et là on revient à l'enfilade que j'avais précédemment lancé. J'ai
compris les techniques, mais comment savoir quel logiciel exactement a
fait l'appel ? C'est peut-être quelque chose de très facile à faire,
mais il me manque encore des billes pour trouver cette information.
Mais j'apprends :-)
Thierry t'avais donné un bon lien lors de ta question précédente sur les pare-feux: http://www.ntkernel.com/w&p.php?id
Etrange, je l'avais râté. Il doit me manquer un article. Sinon effectivement, c'est extrêmement intéressant. D'ailleurs, j'y lis :
1) Winsock Layered Service Provider (LSP). This approach is well documented in MSDN and has a good example (SPI.CPP). As method advantage I would mention the possibility to determine process that called Windows Sockets. [...]
Ca correspond justement à ce que je veux faire, un flux réseau passe, je veux pouvoir le traiter avant de l'envoyer, et cela en fonction du programme.
J'avais déjà regardé les LSP, et malheureusement, je n'avais rien vu sur la possibilité de savoir de quel logiciel provenaient les flux réseaux (d'où cette deuxième enfilade). Ou alors mon oeil de béotien n'a pas su le percevoir. Quelqu'un a des pistes ? Merci !
Pour détecter qu'un logiciel se connecte au net, faut remplacer l'appel système concerné par le tiens.
Et là on revient à l'enfilade que j'avais précédemment lancé. J'ai compris les techniques, mais comment savoir quel logiciel exactement a fait l'appel ? C'est peut-être quelque chose de très facile à faire, mais il me manque encore des billes pour trouver cette information. Mais j'apprends :-)
Encore merci pour toute réponse éventuelle !
Cyrille Szymanski
Thierry wrote in news:XnF96DD65EB91871pouletetcetc@ 212.27.42.74:
Kerio fonctionne comme cela. Même si ça pourrait être gere au niveau LSP apparement aucun FW ne les utilisent (Norton non plus).
Je pense que c'est pour ne pas se limiter aux applications winsock.
Je crois que certains dialers VPN par exemple ne passent pas par winsock et ne peuvent donc pas être filtrés par LSP.
-- Cyrille Szymanski
Thierry <yarglah@com.invalid> wrote in news:XnF96DD65EB91871pouletetcetc@
212.27.42.74:
Kerio fonctionne comme cela. Même si ça pourrait être gere au niveau LSP
apparement aucun FW ne les utilisent (Norton non plus).
Je pense que c'est pour ne pas se limiter aux applications winsock.
Je crois que certains dialers VPN par exemple ne passent pas par winsock et
ne peuvent donc pas être filtrés par LSP.