Ayuda: Programar módulos para un AV-Killer

Iniciado por Mad Antrax, 14 Octubre 2007, 00:59 AM

0 Miembros y 4 Visitantes están viendo este tema.

byebye

Citarel PEPROCESS?? En google no me sale eso

En windbg dt _EPROCESS

Eternal Idol

Por lo general las estructuras se suelen declarar asi en el DDK:


typedef struct _NOMBRE
{
  //campos
} NOMBRE, *PNOMBRE;
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Hendrix

Ok, asi que no hay posibilidad de que el driver se "termine" el mismo, no??

Bueno, no hace falta  ;)

Gracias Eternal  ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Eternal Idol

Cita de: Hendriҳ en 24 Octubre 2007, 22:43 PM
Ok, asi que no hay posibilidad de que el driver se "termine" el mismo, no??

Bueno, no hace falta  ;)

Gracias Eternal  ;)

Un driver de verdad lo mas probable es que si pero un modulo de modo Kernel de este tipo es dificil que tenga rutina de descarga. Igual como te dijeron antes con cortar todos los puntos donde intercepta la funcionalidad que queres ... da lo mismo que siga cargado. Otra cosa, en 64 bits hay que olvidarse de los hooks (al menos el software comercial).

Documentacion WDK (Windows Driver Kit).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Hendrix

Cita de: Eternal Idol link=topic=184050.msg882166#msg882166
Un driver de verdad
/quote]

Con driver de verdad te refieres a un driver firmado????
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Eternal Idol

Cita de: Hendriҳ en 24 Octubre 2007, 22:56 PM
Con driver de verdad te refieres a un driver firmado????

No, me referia al concepto primigenio de device driver (controlador de dispositivo) y a que en estos tiempos un driver WDM por ejemplo tiene que especificar una rutina de descarga (DriverUnload en PDRIVER_OBJECT).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

byebye

#66
CitarOtra cosa, en 64 bits hay que olvidarse de los hooks (al menos el software comercial).

respecto a esto, no ngo ni idea pq noe leido nada, pero porcasualidad si di con un tema que explicaban algo de eso y creo q dijeron que si se podia, de otra forma pero llegaban a lo que se queria.

repito no recuerdo dnd lo vi y no se que tendra de cierto.


y para hendrix, el tema de desargar el driver siempre hablando de el tuyo. tienes que especificarle la rutina de salida y ahi tienes lo que necesitas. intenta descargarlo sin rutina de salida a ver que pasa.

mirate en ntddk.inc la estructura DRIVER_OBJECT

Eternal Idol

Cita de: ̿̿̿̿̿̿̿̿̿ en 24 Octubre 2007, 23:21 PMrespecto a esto, no ngo ni idea pq noe leido nada, pero porcasualidad si di con un tema que explicaban algo de eso y creo q dijeron que si se podia, de otra forma pero llegaban a lo que se queria.

repito no recuerdo dnd lo vi y no se que tendra de cierto.

Poder se puede pero Windows tira abajo el sistema (PatchGuard). Es cierto que se puede burlar (aunque cada vez que lo hagas y Microsoft se entere cerrara esa forma) pero un software comercial no se puede dar ese lujo. Microsoft ahora esta agregando muchos callbacks aunque un poco tarde (para NT 6.2) y algunos ya existen (registro, procesos, modulos, hilos, etc).

De cualquier manera casi todo se puede hacer sin hooks y es una practica de programacion pesima cuando existen alternativas documentadas ...
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

byebye

gracias por la info.

CitarDe cualquier manera casi todo se puede hacer sin hooks y es una practica de programacion pesima cuando existen alternativas documentadas ...

hombre pesima jeje, yo diria sencilla y efectiva. hombre yo lo mas parecido que he leido de hacer "sin hooks" es esto (lo entrecomillo por la forma de hacerlo que viene siendo lo mismo) decia algo asi como establecer un marco SEH y cambiar un byte de la direccion a hookear al ejecutar ese codigo genera una excepcion y va a  rutina donde ejecutas lo que tengas que hacer. mas o menos era asi ahora no voy a poner aqui todo el texto, es mas en gamedeception en el foro esta, pero esto yo lo veo hacer lo mismo pero mas raro.

tu dices que hay alternativas documentdas,podrias dar mas informacion? no hace falta pegar un tocho con explicar la base despues ya se busca  documentacion.

saludos.

Eternal Idol

Cita de: ̿̿̿̿̿̿̿̿̿ en 24 Octubre 2007, 23:42 PMhombre pesima jeje, yo diria sencilla y efectiva.

Si hablamos de un software comercial que va a salir a la calle es una solucion pesima y tarde o temprano se paga.

Cita de: ̿̿̿̿̿̿̿̿̿ en 24 Octubre 2007, 23:42 PMhombre yo lo mas parecido que he leido de hacer "sin hooks" es esto (lo entrecomillo por la forma de hacerlo que viene siendo lo mismo) decia algo asi como establecer un marco SEH y cambiar un byte de la direccion a hookear al ejecutar ese codigo genera una excepcion y va a  rutina donde ejecutas lo que tengas que hacer. mas o menos era asi ahora no voy a poner aqui todo el texto, es mas en gamedeception en el foro esta, pero esto yo lo veo hacer lo mismo pero mas raro.

Como bien decis es otro tipo de hooking, tambien se puede aprovechar el "HotPatching" (mov edi, edi) que es mucho mas limpio y esta pensado (casi) para eso.

Cita de: ̿̿̿̿̿̿̿̿̿ en 24 Octubre 2007, 23:42 PMtu dices que hay alternativas documentdas,podrias dar mas informacion? no hace falta pegar un tocho con explicar la base despues ya se busca  documentacion.

A lo sumo pegaria un enlace  ;) Las alternativas dependen del campo, por ejemplo hookear (con cualquier metodo, SSDT, detours, etc) NtCreateFile es una estupidez cuando podemos crear un driver de tipo filtro para el filesystem. Con uno de estos podemos registrar un callback para la creacion de una sección (si, podemos bloquear jecutables asi - procesos, dlls, drivers).

Para trafico de red podemos hacer un Intermediate Driver de NDIS, para el registro hay callbacks en cantidad, para procesos, hilos y modulos tambien hay callbacks.
Y para NT 6.1 (antes tambien queria decir 6.1 y no 6.2, ups) hasta va a haber un callback para *OpenProcess  ;D

Filter drivers vs hooking y mas generico en realidad.

Windows Vista Security: An Introduction to Kernel Patch Protection Introduccion al problema y algunas alternativas existentes.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón