programa - ¿Cómo se bloquea el acceso de ciertas aplicaciones a Internet(C++, Win32)?
programa para bloquear conexion a internet (6)
¿Podría hacer a un lado (es decir, renombrar) el archivo winsock DLL del sistema y reemplazarlo por el suyo? El suyo debe proporcionar la misma API, pero verifique el nombre del proceso de las solicitudes entrantes ... devuelva un código de error a las aplicaciones bloqueadas y reenvíe las llamadas de las aplicaciones permitidas a la DLL real.
Quiero tener una aplicación o servicio que se esté ejecutando que, en algún horario, pueda deshabilitar el acceso a Internet para todas las aplicaciones excepto para las específicas.
Intento crear un filtro que se pueda activar o desactivar bajo control programático. No solo direcciones IP y puertos, sino que también quiero poder bloquear aplicaciones específicas, al igual que Zone Alarm y otros firewalls de software le permiten bloquear.
Por ejemplo, iexplore.exe, skype.exe, firefox.exe, aim.exe. Pero aún es necesario permitir que otras aplicaciones se conecten según sea necesario.
Tiene que funcionar tanto en Vista como en XP, pero espero que el método sea diferente en cada una de esas plataformas.
Básicamente, el filtro tiene que vincular la comunicación de red al ejecutable que realiza la solicitud y luego permitir o denegarla.
Actualizar:
En Vista, al menos, parece que quiero usar filtros en las capas ALE del PMA .
En XP , todavía estoy buscando la mejor manera de hacerlo. ¿ Realmente necesito escribir controladores de dispositivos y tratar con cosas del kernel? Solo soy un desarrollador de aplicaciones modesto. Mátame ahora.
Actualización 2:
Actualmente, se está examinando la PfCreateInterface y las API relacionadas de Pf * para sistemas anteriores a la Vista.
No estoy seguro, pero creo que tendrías que hacerlo haciendo que el programa se ejecute como un usuario que tiene permisos limitados, la pregunta es, ¿puedes crear una cuenta de usuario que detenga tales cosas?
Tendrá que escribir un controlador de dispositivo que filtra el tráfico en función del ejecutable que solicita el tráfico.
Tendrá que redirigir todas las llamadas (o al menos muchas) a las funciones de API de WinSock de cualquier programa en ejecución a sus propias funciones de reemplazo. Eso significa entrar en la memoria de cada programa en ejecución y secuestrar esas funciones, que es un ... interesante ... ejercicio. :-)
Eso podría ser un indicador suficiente para comenzar, o al menos sugerir algunas preguntas más específicas para hacer.
al limitar su acceso a internet usando el firewall. ir a la pestaña avanzada de configuración de firewall (ganar 7) y hacer eso
Puede cambiar las políticas de firewall de Vista y XP dinámicamente utilizando la interfaz INetFwAuthorizedApplications desde la API de Firewall de Windows.
También vea esta pregunta .