Pregunta

Escribí mi propia LSP que está trabajando bien.Sin embargo, no puedo coger las consultas dns.Por ejemplo, no hay ninguna función como WSPGetHostByName o WSPGetAddrInfo.

Mi lsp también admite el protocolo UDP, pero no es trabajo.Si me quedo nslookup desde la consola (cmd.exe parece de trabajo, pero no puedo coger gethostbyname.¿Alguien sabe cómo hacerlo?No creo que la escritura NSP (Nombre del Proveedor del Servicio) es una solución.Pero yo podría estar equivocado.

Gracias

¿Fue útil?

Solución

Hemos desarrollado un LSP que puede "interceptar" las consultas DNS.La única manera de hacerlo es enlazar a todas las funciones de DNS, ten en mente que hay un par de desafíos a los que usted necesita para resolver:

  1. Usted necesidad de utilizar un buen enganche de la biblioteca, que dará soporte tanto de 32 bits y 64 bits de código.
  2. La biblioteca de la licencia debe ser el correcto para su aplicación, hay algunas bibliotecas libres, pero puede ser utilizado libremente, solo con proyectos libres.
  3. Cuando el gancho de las funciones, usted necesita para asegurarse de no modificar ciertos valores que no están basadas en IP y aplazar la consulta a la función real.

La interceptación de UDP no funcionará ya que las consultas van a salir de MS de cliente DNS, así que a menos que escribir un controlador de bajo nivel como:TDI, NDIS o el PMA debe enlazar las funciones (o escribe un NSP).NSLookup funciona para usted, ya que crea las consultas DNS a sí mismo.

Otros consejos

Mi solución sería la siguiente:

  1. Tomar el conocido navegador web:firefox.exe

  2. copia en un nuevo nombre:icefoxy.exe

  3. modificar el EXE por lo que se carga un archivo DLL personalizado.

Ya he hecho esto un par de meses, pero desde Firefox está constantemente recibiendo actualizaciones, lo que significa:

Ya SEA:mantener una versión y no la actualización (a su propio riesgo, puede causar problemas de seguridad ya que significa que las vulnerabilidades no se fija)

O:Actualización de su modificación cada vez que firefox.exe cambios.

La DLL pueden fácilmente ser escrito utilizando Delphi.

El Firefox modificación de las necesidades de lenguaje ensamblador, a menos que usted sepa cómo descargar todos los archivos necesarios para compilar firefox sí mismo, tener acceso a un compilador C/C++ (probablemente mingw-gcc), y ser preparado para el hecho de que hay 2 mutuamente excluyentes estándares de C++, y si el g++ (parte de la gcc suite) es incompatible con el Firefox de origen, luego de su intento fallará.

Yo no soy un C++ experto mí mismo, así que me tomé la (para mí, al menos) ruta más fácil el uso de lenguaje de máquina, de esa manera no se necesita ser un C/C++ de expertos para hacer el trabajo.

Algunos puntos relativos:

  1. Qué funciones debe ser conectado para interceptar todos los Firefox acceso a un servidor dns(s) ?

  2. Me di cuenta de que, si se carga un archivo DLL en Delphi Icefoxy.exe (una copia de Firefox.exe) a continuación, un formulario Delphi colores que faltan, por ejemplo.si establece (ya sea en el objeto ispector o en el código):

Label1.Color := clLime;

aún se puede ver una etiqueta sin cal de color de fondo.No sé la razón exacta, pero parece que Delphi VCL es confiar a ser utilizado en un archivo EXE, y cuando se utiliza Delphi VCL componentes dentro de una DLL en lugar de un archivo EXE, de algunas cosas (como el color) no funciona como se pretende.

Yo estaría feliz de anunciar mi código (tanto el lenguaje ensamblador modificaciones a Firefox y el Delphi DLL de código fuente) , pero ¿donde puedo publicar por lo que es visible públicamente ?

He utilizado Delphi 7 para hacer la DLL.

si usted utiliza Delphi 2009 o más tarde, usted necesita tomar el cuidado extra que cualquier cadena de los datos transmitidos entre el código de Delphi y no-código de Delphi tiene la codificación correcta, debido al hecho de que En Delphi 2009 y todas las nuevas versiones, el tipo String es un alias para unicodestring, donde en más viejas versiones de Delphi, el tipo String es un alias para AnsiString.

En el momento en que lo hice, fue solo un pequeño experimento para averiguar si puedo fuerza de Firefox para cargar mi propia DLL inti es el espacio de direcciones del proceso.

Otra idea interesante sería conseguir acceso al DOM (Document Object Model) de Firefox desde una DLL en Delphi, que iba a dar una alternativa al uso de TWebBrowser (basado en la versión de ActiveX de Internet Explorer de Microsoft).

Sé que ha sido de componentes como TWebBrowser basado en Firefox, pero su problema es que a nadie le importaba actualizar por un tiempo muy largo, por lo que sólo son compatibles con algunos muy anticuada versión de Firefox.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top