Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-01-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #2  
Antiguo 26-01-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Voy a copiarte un mensaje que hace poco escribí aquí:

Cita:
Empezado por dec
Echa un vistazo a WinPCap (Windows Packages Capture) porque puede interesarte. Hay disponible material para Delphi para trabajar con WinPCap y creo que por ahí van los tiros. Ahora, yo he llegado hasta "interceptar" los paquetes que llegan, por ejemplo, mediante el protocolo "HTTP", pero, "simular la aplicación servidora" no me fue posible, y no sé si lo será o qué: lo cierto es que abandoné antes de avanzar más en el asunto. Pero tú echa un vistazo a ver si puede servirte WinPCap para lo que necesitas. Piensa que un programa como WireShark hace uso de WinPCap.
No sé. Pienso que igual podría dar resultado...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 26-01-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #4  
Antiguo 26-01-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Hola
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #5  
Antiguo 26-01-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #6  
Antiguo 30-01-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
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
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #7  
Antiguo 30-01-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.

Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Acceso a DLL aggg63 Varios 19 18-02-2013 20:49:54
Acceso a BDD via IP´s jorelivi Varios 4 11-07-2007 22:32:07
Acceso a BD Danielle SQL 3 29-04-2006 08:40:20
Acceso a SP tgsistemas Conexión con bases de datos 1 14-09-2004 18:26:34
Acceso a mi db remota sin VPN Slash Internet 12 17-06-2004 18:44:17


La franja horaria es GMT +2. Ahora son las 14:24:37.


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
Copyright 1996-2007 Club Delphi