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
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Introducción a la programación de drivers en Windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 7 [8] Ir Abajo Respuesta Imprimir
Autor Tema: Introducción a la programación de drivers en Windows  (Leído 66,573 veces)
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Introducción a la programación de drivers en Windows
« Respuesta #70 en: 10 Septiembre 2010, 18:32 pm »

pon todo el codigo.

Citar
Pointer to a wide-character string. Note that the strings returned by the various LSA functions might not be null terminated.


puede que sea eso lo que te crea problema, prueba con %wZ con el UNICODE_STRING.
« Última modificación: 10 Septiembre 2010, 18:46 pm por ctlon » En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Introducción a la programación de drivers en Windows
« Respuesta #71 en: 10 Septiembre 2010, 20:50 pm »

Para evitar pantallazos, intenta esto:

Código
  1.  
  2. __try{
  3. //Aqui tu codigo
  4.  
  5. }__except(EXCEPTION_EXECUTE_HANDLER){
  6. NtStatus = GetExceptionCode();
  7. DbgPrint("Exception: %d.\n", NtStatus);
  8. }
  9.  

De todos modos:


- RtlUnicodeStringToAnsiString

Ejemplo:

Código
  1. ANSI_STRING aStr;
  2.  
  3. RtlUnicodeStringToAnsiString(&aStr,CadenaUnicode,TRUE);
  4.  


Un Saludo  ;)
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
Distorsion

Desconectado Desconectado

Mensajes: 238


15Hz ~ 20Hz


Ver Perfil
Re: Introducción a la programación de drivers en Windows
« Respuesta #72 en: 11 Septiembre 2010, 20:13 pm »

Código:

NTSTATUS HookedDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
NTSTATUS       ntStatus;
PIO_STACK_LOCATION IoStack=IoGetCurrentIrpStackLocation(Irp);

PFILE_OBJECT FileObject;
POBJECT_NAME_INFORMATION wcFilePath;
ANSI_STRING aStr;

if (PsReferenceProcessFilePointer(PsGetCurrentProcess(),&FileObject)==STATUS_SUCCESS)
{
__try{
if (IoQueryFileDosDeviceName(FileObject,&wcFilePath)==STATUS_SUCCESS)
{
DbgPrint("Ruta archivo: %ws .\n",wcFilePath->Name.Buffer);
}
else
{
DbgPrint("Ruta archivo: %ws .\n",FileObject->FileName.Buffer);
}
}__except(EXCEPTION_EXECUTE_HANDLER){
ntStatus = GetExceptionCode();
DbgPrint("Exception: %d.\n", ntStatus);
}



}


Este es el codigo, controlar las excepciones no me sirve de nada porque me da pantallazo azul igual :-(

Con el %wZ sige mostrando la barra y transformando la cadena con RtlUnicodeStringToAnsiString me devuelve un punto en vez de una barra.

Lo raro aparte del cuelgue de IoQueryFileDosDeviceName es que no me imprima 'Ruta archivo:' solo una barra.
En línea

Distorsion

Desconectado Desconectado

Mensajes: 238


15Hz ~ 20Hz


Ver Perfil
Re: Introducción a la programación de drivers en Windows
« Respuesta #73 en: 23 Septiembre 2010, 22:02 pm »

Estoy liado con la comunicación entre modo kernel y user  >:D

Tal como esta en el ejemplo puedes dar una orden desde modo user y al acabar la operación en el kernel devolver un resultado ya que segun creo la funcion:
DeviceIoControl(hDevice,(DWORD)Escribe,iBuffer,(DWORD)sizeof(iBuffer),(LPVOID)oBuffer,(DWORD)sizeof(oBuffer),&a,NULL)==true)

es bloqueante y espera a que desde el kernel se envié una repuesta.

Pero yo soy un caprichoso y me gustaría al revés, que el kernel enviara un int y se quedara esperando la respuesta del modo usuario, otro int. Pero claro creo que con el DeviceIoControl no es posible.

A alguien se le ocurre algo?¿
 ;)
 
En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Introducción a la programación de drivers en Windows
« Respuesta #74 en: 23 Septiembre 2010, 23:14 pm »

Create un evento y con readfile lees los datos desde modo usuario.
En línea

Miseryk

Desconectado Desconectado

Mensajes: 217


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: Introducción a la programación de drivers en Windows
« Respuesta #75 en: 31 Diciembre 2010, 12:21 pm »

Hola a to2, se viene el 2011 :O y se aproxima el 2012 :):):):):):), no he podido descargar ni encontrar esta herramienta, "WinDbg", otra cosa, cómo puedo hacer para saber el OffsetFlink y el OffsetBlink, son &H88 y &H8C? Desde yá muchas gracias y feliz año. (Y)
En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
wachi

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Introducción a la programación de drivers en Windows
« Respuesta #76 en: 9 Diciembre 2011, 03:02 am »

hola a todos ,desde hace un tiempo para aca me estoy introduciendo a la programacion de drivers,ya me he leido el tute de Hendrix ,el cual esta muy bueno,peor quiero hacerles una pregunta ,existe algun IDE para programar los driver que tenga ayuda inteligente (es decir que cuando yo de Ctrl + Space) me salgan las funciones de las diferentes librerias ?????

gracias de antemano......
En línea

Si lo que vas a decir no es mas bello que el silencio : no lo digas
Páginas: 1 2 3 4 5 6 7 [8] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Introducción a la programación con Android « 1 2 3 »
Java
Casidiablo 29 60,214 Último mensaje 14 Diciembre 2012, 09:12 am
por R/G
Programacion con API de Windows
Programación General
ars1993 2 1,411 Último mensaje 3 Junio 2013, 17:13 pm
por ars1993
Programación drivers
Programación General
FermatsTheorem 5 2,161 Último mensaje 1 Noviembre 2017, 07:29 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines