Pequeña duda sobre drivers Windows

Iniciado por lweb20, 17 Mayo 2013, 19:56 PM

0 Miembros y 1 Visitante están viendo este tema.

lweb20

Hola, aquí estoy de nuevo.

Estuve un rato en el foro leyendo algunos post y me hizo acordar sobre una época que logré hacer un driver para Windows 7 ( casi todo copy/past ) para hookear el CreateProcess.

Una vez consulté aquí en el foro sobre una duda y me respondió "Eternal Idol" y me dijo que no es buena idea hookear ya que en 64-bit no funciona, y eso me hizo pensar muchas cosas.

1) ¿Cómo hacen los antivirus para analizar cada proceso que se abre y detener la ejecución antes que empiece?

2) ¿Acaso existe otro método que no sea hookear?

3) ¿Qué mas se pueden hacer con los drivers? ( aparte de usarlo con hardware claro )

Agradecería mucho alguna aclaración.

EDIT: Y por de casualidad. ¿Alguien conoce manuales sobre el kernel de Windows en español? ya que estos temas son complicaditos y difíciles de entender sobre todo cuando está en inglés 100 hojas :P

x64core

Cita de: lweb20 en 17 Mayo 2013, 19:56 PM
Hola, aquí estoy de nuevo.

Estuve un rato en el foro leyendo algunos post y me hizo acordar sobre una época que logré hacer un driver para Windows 7 ( casi todo copy/past ) para hookear el CreateProcess.

Una vez consulté aquí en el foro sobre una duda y me respondió "Eternal Idol" y me dijo que no es buena idea hookear ya que en 64-bit no funciona, y eso me hizo pensar muchas cosas.

1) ¿Cómo hacen los antivirus para analizar cada proceso que se abre y detener la ejecución antes que empiece?

2) ¿Acaso existe otro método que no sea hookear?

3) ¿Qué mas se pueden hacer con los drivers? ( aparte de usarlo con hardware claro )

Agradecería mucho alguna aclaración.

EDIT: Y por de casualidad. ¿Alguien conoce manuales sobre el kernel de Windows en español? ya que estos temas son complicaditos y difíciles de entender sobre todo cuando está en inglés 100 hojas :P

Hola,

1) Windows provee funciones callbacks para ese tipo de tareas, por ejemplo para monitorizar todo proceso que
es iniciado o cerrado se puede usar la función: PsSetCreateProcessNotifyRoutine. Obviamente y estoy muy seguro que un antivirus no utilizaria este
callback debido a que cuando esta es invocada desde modo kernel el proceso ya ha sido creado ( incluyendo espacio virtual, hilo principal, etc )  y ejecutado, en lugar ellos hookean funciones como Psp,que,Se,Hal debido a que necesitas analizar los argumentos que son pasados porque mantienen
una lista basada en heurística.
por ejemplo Openprocess/NtOpenprocess analizar el numero de identificador del proceso que es pasado como argumento y verificar si no es el del mismo
antivirus, un handle a un proceso con un token con todos los privilegios asignados es casi seguro la terminación de un proceso.

2) Depende de que tipo de tareas, opciones: puede programar un driver de tipo filtro para controlar un NTFS, usar callbacks como dije ( los cuales son limitados, no se puede agregar callbacks inifnitos debido a falta de recursos ),
evitar hooks tanto sea posible.

3) *facepalm*

A menos que te esperes unos cuantos años hasta que llegue la version del libro traducida a tu idioma (generalmente
tardan 4-8 años y eso es si es bastante solicitada en el idioma) de lo contrario aprender Ingles.
Por cierto, Eternal Idol es un capo.  ::)


Cönnectome

Buenas,

Aprovecho este post para preguntar..., es verdad que Windows dificulta la posibilidad de acceder el hardware?,

Tengo entendido que para acceder al hardware es más fàcil programarlo desde un Linux porque hay más documentación sobre este...

Y si no es así, donde podria buscar información al respecto?

Muchas gracias,

Saludos

Cönnectome


lweb20

#3
Cita de: Cönnectome en 18 Mayo 2013, 16:09 PM
Buenas,

Aprovecho este post para preguntar..., es verdad que Windows dificulta la posibilidad de acceder el hardware?,
...


Amigo, crea tu propio post. Reglas del foro.



EI: juntando mensajes.



x64Core Gracias por la información. Me servirá más adelante cuando logre usar VirtualBox con VS2012 para la creación de drivers ya que en estos momentos no me deja depurar el driver.