Denegar acceso a URL
Tengo que denegar el acceso a determinadas URLs y permitírselo a las demás. En principio parece un problema simple que resuelven muchos filtros así que no me pareció complejo.
En un principio pensé en hacer un Hook a la API InternetOpenUrlA o InternetOpenUrlW. De forma que me armé del OlliDbg y me puse a invertigar el iexplore.exe. Sorpresa, el iexplore no carga Wininet.dll y por lo tanto no usa esa API. Sin embargo explorer.exe si lo hace, así es que hice un pequeño experimento con un hook a InternetOpenUrlA, lo coloque en una dll y lo inyecté en explorer.exe... No funciona. Explorer abre iexplore directamente al encontrarse una URL. Tampoco funciona si lo inyecto en iexplore.exe, como ya esperaba que ocurrriese. Se me ocurre, entonces, un Hook al GET de Ws2_32.dll, pero posiblemente sólo capturaría la primera URL y no las enlazadas. Despues de buscar en la red, no he sacado nada en claro. ¿A alguien se le ocurre como hacerlo? ¿Un Hook a otra API funcionaría? Gracias a todos por vuestro tiempo. Saludos. |
Hola,
Voy a copiarte un mensaje que hace poco escribí aquí: Cita:
|
Muchas gracias dec. Siempre aportas información y documentación interesante. Lo he mirado por encima y he visto que se sirve del modo Kernel. Intuía una solución parecida pero confiaba en una forma mas sencilla con APIs en modo usuario.
Miraré mas despacio la documentación que proporciona el paquete. Me interesaría implementar yo mismo una solución a este tema y quizás obtenga buenas ideas si analizo el código fuente. Todas las ideas son bien recibidas. Muchas gracias y un saludo. |
|
Gracias cHackAll. En realidad lo que quiero es restringir el acceso a Internet a unas poquitas páginas, de tal forma que mas que una lista negra, lo que tengo es una lista blanca. Tenía pensado hacerlo por código prescindiendo de aplicaciones externas de terceros.
Saludos. |
Entiendo; en tal caso una solucion de mayor nivel de programacion seria utilizando un servidor Proxy; en el caso de usar una red instalas dos NICs en el que habra de ser el servidor y con algun programa puedes "abrir" y/o "cerrar" URLs/IPs especificos.
En otro caso podrias crear un cliente proxy para que se conecte a algun servidor de internet, definiendo en el mismo los sitios aceptados/restringidos. Saludos |
Gracias cHackAll. Siempre tienes buenas ideas.
De momento me he puesto a complicarme un poco la vida y estoy experimentando con un Hook al WinSock. He comenzado a experimentar con connect y puedo interceptar la IP..., Claro todo inyectando código en dll. Pero un verdadero cortafuegos iría mas abajo, al Ring 0. :p Saludos. |
La franja horaria es GMT +2. Ahora son las 14:00:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi