Este es una modificación del código fuente de Hendrix donde explica como hookear ZwOpenProcess, lo publico a modo de aprendizaje. Queda bajo su responsabilidad su uso en maquinas reales, si bien lo probe en mi maquina real con W7 y en virtual con WXP no me hago responsable por BSOD's que puedan surgir.
Lo modifique para que proteja un solo proceso, ahora NADA y repito NADA podrá cerrar ese proceso pues lo estarán cuidando desde el otro lado :3

Para eso primero se necesita un "mensajero" es el que trabaja del lado del usuario se encarga de instalar, ejecutar, mandar el PID a proteger o desproteger, detener y eliminar el driver.

Codigo del driver:

Mostrar/Ocultar

Codigo del mensajero.

Mostrar/Ocultar

Unas capturas...
Imagen

Imagen

Imagen

Imagen

Imagen

Imagen


Descarga de binarios: [Enlace externo eliminado para invitados]

Cualquier duda o pregunta no duden en hacerla.
Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Wow esto sera de mucha ayuda muchas gracias :)
estoy matando el tiempo, mientras el tiempo nos mata lentamente..

Mostrar/Ocultar

Gracias por los comentarios.
Pronto terminare uno mas parecido a un rootkit...

Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Menudo code tio esta de lujo, una curiosidad, en que lenguajes mas programas?, y por cierto la cancion de tu firma de youtube, es de mis favoritas ,saludos
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
@Adwind y aun le falta, aun investigo como restaurar la SSDT para eliminar la poca protección que ofrece el AV en esta situación.

@strup gracias compañero, pues solía programar en VB6, programo respetablemente en Delphi y C, y un poco de plataformas web. Tambien es de mis favoritas, me gusta mucho la batalla de solos.

Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
orlando9427 escribió:@Adwind y aun le falta, aun investigo como restaurar la SSDT para eliminar la poca protección que ofrece el AV en esta situación.

@strup gracias compañero, pues solía programar en VB6, programo respetablemente en Delphi y C, y un poco de plataformas web. Tambien es de mis favoritas, me gusta mucho la batalla de solos.

Saludos!
OSTIA PUTA! programas en mas lenguajes de lo que pense (en delphi me lo figure ya por un comentario tuyo y por el tema de la programacion de drivers en la seccion delphi)
un saludo
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Gracias aun le falta mucho a este code, pero se convertirá en un rootkit.

Saludos!
PD: Adwind ya tengo todo del WMF solo que aun no encuentro el patron en los XML para agregar la diapo =/
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Jolines... no sabes la envidia que me das! :(
Enhorabuena por este magnifico código!!
(la mitad no lo entiendo, no se donde vienen algunas funciones y demás ya que mi nivel de C/C++/WinAPI no es para echar cohetes xD)

Solo (si quieres... jeje) aclárame un par de cosas:

Código: Seleccionar todo

#define SYSTEMSERVICE(_function) KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_funtion+1) ]
#define Block CTL_CODE(FILE_DEVICE_UNKNOWN, 0x00000001, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define Unblock CTL_CODE(FILE_DEVICE_UNKNOWN, 0x00000002, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
Porque se usar #define (macro) en vez de funciones directas? Es algo que nunca entendí xDD

Y después, con que está compilado? Lo intento en DevC++ y me está dando problemas

Saludos, gracias y de nuevo, enhorabuena!! :)
[ Lo importante no es el final, sino el camino recorrido ]
El uso de macro, desde mi punto de vista, es para ahorrarte lineas de código, en el primer macro no valdría la pena hacer una función con las pocas lineas de código.
Las otras dos lineas son constantes para identificar el tipo de mensaje que se envía desde el modo usuario, en este caso se usará un método con buffers de lectura y escritura (envío y recepción).

Nunca vas a poder compilar un driver en Dev-C++, para eso necesitas descargarte la WDK te recomiendo la 2600 que es para WXP, WVista y W7, ya que la WDK para W8 excluye a WXP además de que los drivers deben de ir firmados digitalmente y bueno eso es un problema. Dentro de la WDK viene la MSDN para Drivers, con todas las estructuras, APIs, métodos legales, etc con su explicación, claro en inglés xD.

Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Hola! Disculpen si revivo el post, pero esto funcionaria igual que el programa conocido Hidetoolz si no me equivoco no?
Gracias por el aporte!
HAsta luego.
Siempre tienes que luchar por lo que uno quiere..
Responder

Volver a “Fuentes”