Introducción a la programación de drivers en Windows

Iniciado por Hendrix, 12 Octubre 2008, 20:43 PM

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

Hendrix

Siempre que no uses nada "harcodeado" te va a funcionar. En el ejemplo del DKOM, tienes que mirar que las direcciones de las diferentes ramas de la estructura eprocess sean en la dirección adecuada, las direcciones cambian según versión  ;)

Un Saludo  :)
"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

EREBOR

Buenos dias!!
Hoy me e puesto con el manual, bueno lo e intentado ya que nada mas empezar dice: "Para compliar lo que tienen que hacer es crear una carpeta y dentro meter el codigo (main.c por ejemplo) y un archivo SOURCE y un MAKEFILE."

Bueno ahora mi duda xD, seguro que parecerá mu novata pero estoy empezando jejeje, el SOURCE y el MAKEFILE ambos los cree a partir de un .txt en el cual meti los comandos y luego el SOURCE lo pase a .list y el MAKEFILE a .def, estos tampoco sabia como crearlos pero buscando un poco en google descubri que se podia hacer asi...Pero lo que no encuentro es como meter el codigo main.c en la carpeta...

Gracias!!!
Y perdon por las molestias!! ;)

Karcrack

@EREBOR

En este mismo post hice un script en VBS para ahorrarnos todo ese trabajo :xD

Seguramente te sirva ;D

Saludos ;)

newone

buen manual, me podrian decir si puedo usar visual c++ 6 con el wdk que me baje, algunos dice que es muy antiguo para el wdk pero quiero que me lo diga alguno que sepa que este seguro mas que nada y si no se puede usar visual 6 que me digan que visual c++ puedo usar que version gracie  ;D

traxtor

Hola

Sin intencion de desmerecer para nada el manual del compañero Hendrix (de hecho es una de las fuentes de informacion que yo mismo utilice) en mi blog hay publicada una entrada y un codigo fuente relacionado con el tema:

http://neosysforensics.blogspot.com/2008/11/ocultacin-de-procesos-en-windows-dkom.html

Saludos

escabe

#55
He estado siguiendo con mucho interés este hilo y me ha parecido muy bueno. Doy las gracias sinceras a Hendrix por su trabajo y darme la oportunidad de aprender a programas drivers.

He hecho prácticas con el Hook a ZwOpenProcess y me a funcionado bien.
Saludos.

PD:
Quisiera aportar al hilo otra forma de conseguir un Hook, por ejemplo a la misma API mencionada:

VOID Hook()
{
   _asm cli
   ZwOpenProcessIni =(PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess));
   (PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess)) = NewZwOpenProcess;
   _asm sti
}

VOID UnHook()
{
   _asm cli
   (PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess)) = ZwOpenProcessIni;
   _asm sti
}

// SYSTEMSERVICE es la macro que se describe en este hilo


Saludos.

Zzombi

Cita de: escabe en 19 Enero 2009, 20:24 PM
He estado siguiendo con mucho interés este hilo y me ha parecido muy bueno. Doy las gracias sinceras a Hendrix por su trabajo y darme la oportunidad de aprender a programas drivers.

He hecho prácticas con el Hook a ZwOpenProcess y me a funcionado bien.
Saludos.

PD:
Quisiera aportar al hilo otra forma de conseguir un Hook, por ejemplo a la misma API mencionada:

VOID Hook()
{
   _asm cli
   ZwOpenProcessIni =(PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess));
   (PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess)) = NewZwOpenProcess;
   _asm sti
}

VOID UnHook()
{
   _asm cli
   (PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess)) = ZwOpenProcessIni;
   _asm sti
}

// SYSTEMSERVICE es la macro que se describe en este hilo


Saludos.

me funciono perfecto!! gracias escabe

Horricreu

#57
El enlace del DebugView está roto. Dejo un enlace a continuación:

http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

Saludos :P

Distorsion

Muy buen texto, me ha entrado el gusanillo.

Mi pregunta es si ai por aí alguna lista de las apis que se pueden llamar en modo kernel para encontrar equivalentes a las de modo usuario, por ejemplo encontrar la equivalente a GetProcessId().

Gracias por la aportación ;-)

Hendrix

Cita de: Distorsion en  6 Agosto 2010, 16:14 PM
Muy buen texto, me ha entrado el gusanillo.

Mi pregunta es si ai por aí alguna lista de las apis que se pueden llamar en modo kernel para encontrar equivalentes a las de modo usuario, por ejemplo encontrar la equivalente a GetProcessId().

Gracias por la aportación ;-)

Pues no lo se, hay una lista de API's para modo kernel aquí: http://jedi-apilib.sourceforge.net/native/NativeList.html

Y para lo que tu pides, puedes desensamblar la API con el WinDbg para ver las llamadas a API's del kernel y sus parámetros.

Un Saludo  :)
"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