Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: paulagarcum en 17 Diciembre 2012, 22:53 pm



Título: Driver básico que no me carga
Publicado por: paulagarcum en 17 Diciembre 2012, 22:53 pm
Hola a todos. Soy nueva. Resulta que he escrito el siguiente driver que como véis es el básico. Lo compilo con el WDK en el "x86 Free Build Environment" y todo bien. Me genera el SYS. Luego uso el programa InstDrv. Primero le doy a Install y bien: se instala en el registro. Pero a continuación le doy a Start y no se inicia el driver, sino que InstDrv me da el siguiente mensaje-error: "a un expected error ocurried" y como os digo el driver no se ejecuta.

¿Alguien sabe por qué puede pasar esto? Porque el driver no puede ser más fácil.
Este es el driver:


#include "ntddk.h"

DRIVER_UNLOAD DriverUnload;

VOID DriverUnload(IN PDRIVER_OBJECT DriverObject) {
   DbgPrint("Descargandome");

}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING  RegistryPath) {
   
   (*DriverObject).DriverUnload = (PDRIVER_UNLOAD)DriverUnload;

   DbgPrint("Cargandome");
   
   return(STATUS_SUCCESS);

}


Título: Re: Driver básico que no me carga
Publicado por: paulagarcum en 17 Diciembre 2012, 23:02 pm
Se me olvidaba:

Lo estoy intentando cargar en WINDOWS 7 x64.



Título: Re: Driver básico que no me carga
Publicado por: x64core en 17 Diciembre 2012, 23:18 pm
Seguro, tu lo dijiste:

Se me olvidaba:

Lo estoy intentando cargar en WINDOWS 7 x64.



Compilarlo para 64-bits y conseguir tu propia firma digital o desactivar el PatchGuard.


Título: Re: Driver básico que no me carga
Publicado por: paulagarcum en 17 Diciembre 2012, 23:52 pm
Muchas gracias. Con lo que me has dicho ya me he aclarado algo.

Y entonces deduzco que en un sistema x64 como Windows 7 x64, sólo se pueden cargar drivers de 64 bits ¿no?

A diferencia de aplicaciones en ring3 que en ese mismo sistema Windows 7 x64 pueden ser de 32 o de 64 bits y ambas se ejecutan bien. ¿Es eso?

Es que no tengo claras las cosas.


Título: Re: Driver básico que no me carga
Publicado por: x64core en 18 Diciembre 2012, 00:13 am
Muchas gracias. Con lo que me has dicho ya me he aclarado algo.

Y entonces deduzco que en un sistema x64 como Windows 7 x64, sólo se pueden cargar drivers de 64 bits ¿no?
Sí, al menos de forma normal.

A diferencia de aplicaciones en ring3 que en ese mismo sistema Windows 7 x64 pueden ser de 32 o de 64 bits y ambas se ejecutan bien. ¿Es eso?

Es que no tengo claras las cosas.
En una version de 64-bit de Windows, una aplicación es emulada y no cargada nativamente, hay unas DLLs que se encargan de emular el entorno y trasladar versiones de llamadas desde 32-bit a 64-bits y podría funcionar correctamente
dependiendo de lo que haga tu programa, solo por si alguna vez tu programa no funcionara en una version de 64-bits, existe la posibilidad de que no funcione correctamente o tendrías que modificar para que soporte versiones de 64-bit.