Y at-il un moyen en C++ sur Windows de surveiller un programme et de rediriger toutes les demandes sortantes qu'il effectue sur un port spécifique? J'ai un simple proxy HTTP C++ et je veux qu'il soit capable de rediriger automatiquement toutes les demandes de navigateur sur le port 80 par lui-même.Connexions sortantes de redirection C++
Répondre
La manière simple de le faire est de créer un hook noyau Windows pour intercepter les demandes de socket et les rediriger vers votre proxy.
Certains documents utiles à ce sujet est:
http://www.internals.com/articles/apispy/apispy.htm
Si vous utilisez Windows Vista ou mieux, pensez à plateforme de filtrage Windows (PAM):
http://www.microsoft.com/whdc/device/network/wfp.mspx
Voir également la recherche au Detours (commercial) et EasyHook (gratuit). Ils simplifient considérablement le processus d'écriture des hooks et redirigent les appels d'API (Win32 et Application).
Le programme devrait être exécuté avec des privilèges d'administrateur en mode noyau du système d'exploitation hôte. Bien que je n'ai pas une grande expérience avec les hooks du noyau Windows, en BSD et linux son trivial pour installer un module noyau qui écrase les appels système pour créer des sockets et pourrait facilement rediriger toutes les sockets vers un socket proxy de choix .
Si tout le monde utilisait Linux, nos tâches seraient beaucoup plus faciles en général. –
Si vous voulez dire [n'importe quel port de destination] vers [un port], vous devrez utiliser des pilotes spéciaux. Le problème avec windows est l'incapacité de bloquer nativement les paquets [drop]. Par exemple, une solution commune est winpcap. Cependant, bien que vous puissiez surveiller le trafic, vous ne pouvez pas arrêter le trafic ou le modifier de manière utile.
Sur Windows, la seule solution que j'ai vu serait d'utiliser open TUN/TAP adapter. Avec cela, vous seriez en mesure de modifier chaque paquet qui quitte votre système.
Si vous connaissez à l'avance le port de destination que vous utiliserez, il deviendra plutôt simple. Il suffit d'écrire un programme socket passthrough C++ qui ne changera que le port de destination.
Si vous souhaitez rediriger les demandes de navigateur, vous pouvez simplement modifier les paramètres dans votre navigateur.
- 1. Webhost permettant les connexions sortantes ...?
- 2. Augmentation du nombre de connexions sortantes
- 3. Asp.net - Connexions sortantes Microsoft SQL Server
- 4. les connexions sortantes en utilisant Autoriser 'iptables
- 5. Local IIS - Comment désactiver les connexions entrantes/sortantes?
- 6. Risque d'exploits "en arrière" dans les connexions tcp sortantes
- 7. Comment configurer les connexions sortantes à partir d'une procédure stockée SQL?
- 8. Quel type de redirection HTTP pour les connexions?
- 9. Comment puis-je surveiller le nombre de demandes WCF sortantes?
- 10. Règles de réécriture des URL sortantes IIS7
- 11. C# redirection méthode accès
- 12. Connexions C# Threading et Sql
- 13. C# connexions multiples vs jeu de données
- 14. Page de redirection de redirection
- 15. C# Application multithread et connexions SQL help
- 16. Obtention d'informations de redirection avec C# et C++
- 17. Utilisation de différentes adresses IP sortantes en Perl
- 18. Le Finder dissimule les connexions réseau de lsof?
- 19. Nombre de connexions disponibles dans le pool de connexions ADO.NET
- 20. C++ iptables redirection former des paquets séparés
- 21. C# problème avec redirection erreur standard
- 22. C# et IIS - connexions de suppression SSL, fine sur HTTP
- 23. sortie de processus de redirection
- 24. Demande de redirection Web
- 25. comment obtenir l'url de redirection de ajax handler dans C#
- 26. Problème de redirection d'une sortie de programme C dans bash
- 27. Plusieurs connexions de socket
- 28. mysql trop de connexions
- 29. MySql trop de connexions
- 30. Suivi des demandes HTTP sortantes d'un serveur Web
vous n'avez pas spécifié l'OS - c'est plus facile sur les variantes unix. –
Oh désolé windows. sur linux c'est un iptables oneliner lol. –
Normalement, les programmes ne peuvent pas interférer avec d'autres programmes. Ce serait une violation de la sécurité. Vous devez configurer votre navigateur (ou autre application) pour utiliser explicitement le proxy. –