elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [KERNEL MODE][?] No puedo incluir ntddk
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [KERNEL MODE][?] No puedo incluir ntddk  (Leído 5,132 veces)
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
[KERNEL MODE][?] No puedo incluir ntddk
« en: 16 Julio 2010, 21:11 pm »

Buenas, estoy empezando a programar en Kernel Mode y, tengo ya descargado y configurado el compilador del DDK sin Visual Studio 2008. El caso es que quería probar como configurarlo para Visual Studio 2008. Seguí todos los pasos y, también he enlazado la librería ntddk. Cuando compilo me dice que no existe esta librería y, también lo probé de hacerlo con pragma aunque es lo mismo :-\

¿Alguna sugerencia?

Muchas gracias y saludos :P


« Última modificación: 26 Agosto 2010, 00:40 am por Horricreu » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #1 en: 16 Julio 2010, 22:00 pm »

Para responderte primero es necesario saber que hiciste, paso por paso.

  • Enumera los pasos que has hecho
Mas allá que estén en el link, es necesario saber específicamente lo que has hecho para poder encontrar el error

  • Como has intentado linkear? que has puesto en pragma?
Igualmente dudo que eso tenga que ver, un tema es una referencia indefinida y otra muy distinta es que la librería ni siquiera exista. Postea los errores.

Si el error es que la librería no existe, mi primer palpito es que no agregaste los directorios (inc,lib) correctamente a los paths del VS.

  • El WDK esta configurado correctamente?
Intenta generar un mínimo ejemplo sin utilizar Visual Studio para confirmar que todo lo relevante este instalado correctamente.

Saludos!



En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #2 en: 17 Julio 2010, 02:13 am »

Los archivos de cabecera se incluyen no se enlazan ... te veo un poco verde para este tema.
En línea

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
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #3 en: 17 Julio 2010, 10:12 am »

Por eso le pregunte que es lo que había intentado enlazar, porque al principio creí que lo de linkear era solo un error de concepto y en realidad se refería a incluir, pero como no respondió, probablemente tengas razón y haya intentado enlazar el header con pragma lib u agregándola en las dependencias adicionales. Si fue así, supongo que el error ya le habrá quedado claro ;D.

Igualmente si con linkear se refería a incluir, el problema probablemente se deba a que los directorios de los archivos a incluir no están agregados correctamente.

Horricreu, no se si estas leyendo algún libro, pero te recomendaría que vayas a la par de algún libro introductorio del tema y de paso que revises bastante la documentación del ddk.

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #4 en: 17 Julio 2010, 12:01 pm »

Vamos a ver, ya eliminé el DDK porque me daba problemas en el PC, no se instalaba... y, como se puede hacer directamente con el Visual Studio 2008 pues mejor.

A ver, seguí los pasos de aquella Web y, en el paso número 10 decía que se podrían poner las librerías deseadas. Como decía, me fui a: Linker/Input/Additional Dependencies y puse lo siguiente: ntoskrnl.lib hal.lib ntddk.lib $(NOINHERIT)

Puede que el problema esté aquí.

Los archivos de cabecera se incluyen no se enlazan ... te veo un poco verde para este tema.

Hago lo que puedo, si me confundí de nombres ahora ya lo sé :)

Por eso le pregunte que es lo que había intentado enlazar, porque al principio creí que lo de linkear era solo un error de concepto y en realidad se refería a incluir, pero como no respondió, probablemente tengas razón y haya intentado enlazar el header con pragma lib u agregándola en las dependencias adicionales. Si fue así, supongo que el error ya le habrá quedado claro ;D.

Igualmente si con linkear se refería a incluir, el problema probablemente se deba a que los directorios de los archivos a incluir no están agregados correctamente.

Horricreu, no se si estas leyendo algún libro, pero te recomendaría que vayas a la par de algún libro introductorio del tema y de paso que revises bastante la documentación del ddk.

Saludos!


No respondí porque en España era un poco tarde y, estaba muy cansado :xD

Saludos :P

EDITO: pongo el código:

Código
  1. #include "ntddk.h"
  2.  
  3. NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
  4. {
  5. DbgPrint("Ejemplo");
  6.  
  7. return STATUS_SUCCESSFUL;
  8. }
« Última modificación: 29 Septiembre 2010, 23:54 pm por Horricreu » En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #5 en: 17 Julio 2010, 15:49 pm »

EDITO: pongo el código:

Código
  1. #include "ntddk.h"
  2.  
  3. NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
  4. {
  5. DbgPrint("Ejemplo");
  6.  
  7. return STATUS_UNSUCCESSFUL;
  8. }

Cuando descargues el driver te va a dar BSOD ya que te falta código (Rutina de salida, como mínimo).

En línea

"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
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #6 en: 17 Julio 2010, 17:43 pm »

Bueno es igual. Mejor dejo el Kernel Mode para más adelante siguiendo los sabios consejos de Eternal Idol :)

Saludos :P
« Última modificación: 26 Agosto 2010, 00:38 am por Horricreu » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #7 en: 17 Julio 2010, 17:52 pm »

Cuando descargues el driver te va a dar BSOD ya que te falta código (Rutina de salida, como mínimo).

En realidad la rutina de descarga es opcional y este modulo se descarga automaticamente al retornar un error.
En línea

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
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #8 en: 18 Julio 2010, 13:54 pm »

Cuando descargues el driver te va a dar BSOD ya que te falta código (Rutina de salida, como mínimo).

En realidad la rutina de descarga es opcional y este modulo se descarga automaticamente al retornar un error.

Sin dar BSOD?? Sabia que se descargaba dando un error, y por lo tanto una BSOD... siempre creí que la rutina de descarga era obligatoria  :-\

Bueno es igual. Mejor dejo el KM para más adelante siguiendo los sabios consejos de EI :)

Saludos :P


Creo que haces bien, sigue practicando en modo usuario para luego intentar entender y poder picar código para modo kernel.


Un Saludo
« Última modificación: 18 Julio 2010, 13:56 pm por Hendrix » En línea

"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
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [KERNEL MODE][?] No puedo linkear ntddk.h
« Respuesta #9 en: 18 Julio 2010, 14:31 pm »

Sin dar BSOD?? Sabia que se descargaba dando un error, y por lo tanto una BSOD... siempre creí que la rutina de descarga era obligatoria  :-\

Claro, un BSOD se produce por una excepcion no controlada (en modo Kernel) y en este caso estamos hablando de un valor de retorno no exitoso, algo totalmente esperado y no una excepcion. Lo mejor es que lo pruebes, vas a ver el mensaje en el depurador, el modulo se descargara posteriormente y el S.O. seguira funcionando sin problemas (al menos no relacionados con el modulo  ;D).

PDRIVER_UNLOAD DriverUnload
The entry point for the driver's Unload routine, if any, which is set by the DriverEntry routine when the driver initializes. If a driver has no Unload routine, this member is NULL.

La mayoria de los modulos de seguridad no tienen una rutina de descarga, de otra manera con hacer "net stop modulo" ya te saltarias la proteccion :xD
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Puedo incluir vuestro foro en mi blog?
Sugerencias y dudas sobre el Foro
adgellida 2 2,798 Último mensaje 13 Noviembre 2012, 01:34 am
por adgellida
Patchear arranque kernel-mode driver
Ingeniería Inversa
kub0x 0 3,813 Último mensaje 28 Junio 2015, 15:53 pm
por kub0x
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines