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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  una duda, intentando comunicar mu con mk.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: una duda, intentando comunicar mu con mk.  (Leído 3,860 veces)
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
una duda, intentando comunicar mu con mk.
« en: 8 Diciembre 2010, 12:59 pm »

hola, estaba siguiendo el pdf de hendrix para comunicar el modo usuario con el modo kernell y tengo algunas dudas basicas. Yo lo estoy haciendo en windows 7 y utilizo para compilar el x86 free build environment, del windows 7, del ddk. El código del driver es este (faltan las rutinas de unload, y de control que no las pongo porque no importan en esta duda):

Código
  1. #include <ntddk.h>
  2.  
  3. const WCHAR Device[]=L"\\Device\\bananas";   //modo kernell
  4. const WCHAR sLink[]=L"\\DosDevices";   //modo usuario
  5. UNICODE_STRING Dev,lnk;
  6.  
  7. NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
  8. {   NTSTATUS s;
  9. unsigned int i;
  10.    //DriverObject->DriverUnload=Salir;
  11.    for(i=0;i<IRP_MJ_MAXIMUM_FUNCTION;i++)
  12.    {
  13.       // DriverObject->MajorFunction[i]=Control;
  14.    }
  15.    RtlInitUnicodeString(&Dev,Device);
  16.    RtlInitUnicodeString(&lnk,sLink);
  17.    s=IoCreateDevice(DriverObject,0,&Dev,FILE_DEVICE_UNKNOWN,0,0,&DriverObject->DeviceObject);
  18.    if (NT_SUCCESS(s))
  19.    {
  20.        s=IoCreateSymbolicLink(&lnk,&Dev);
  21.        if(!NT_SUCCESS(s))
  22.        {
  23.            IoDeleteDevice(DriverObject->DeviceObject);
  24.            DbgPrint("Linking Error");
  25.        }
  26.        else
  27.        {
  28.            DbgPrint("Cargado");
  29.        }
  30.    }
  31.    else
  32.    {
  33.        DbgPrint("Error IoCreate");
  34.    }
  35.    return STATUS_SUCCESS;
  36. }

Con este codigo me da "Linking Error", con lo cual el DeviceObject debería estar creado y llamarse "bananas", pero he buscado con el WinObject dentro del directorio "Device" y no he visto el objeto creado.

¿No debería de haberse creado el objeto "bananas" dentro del directorio "Device"?

Además tampoco he visto por ningún sitio el directorio DosDevices.

Un saludo.
« Última modificación: 8 Diciembre 2010, 13:01 pm por Novlucker » En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: una duda, intentando comunicar mu con mk.
« Respuesta #1 en: 9 Diciembre 2010, 15:39 pm »

const WCHAR   sLink[]=L"\\DosDevices";   //modo usuario

Eso se supone que es un directorio donde debes de poner el nombre del enlace
typo: sLink[]=L"\\DosDevices\\bananas";

tambien puedes sustituir 'DosDevices' por '??' y funciona igual.
En línea

black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: una duda, intentando comunicar mu con mk.
« Respuesta #2 en: 10 Diciembre 2010, 11:25 am »

vale, gracias.
Pero sigo sin entender por qué no encuenctro mi device creado con el nombre "bananas" en la carpeta "Device", con el WinObj. ¿no debería estar creado el dispositivo en dicha carpeta?

un saludo.
En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: una duda, intentando comunicar mu con mk.
« Respuesta #3 en: 10 Diciembre 2010, 15:32 pm »

Si, pero solo si no da error en alguna parte, por estas lineas:

Código
  1. IoDeleteDevice(DriverObject->DeviceObject);
  2. DbgPrint("Linking Error");
  3.  
En línea

black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: una duda, intentando comunicar mu con mk.
« Respuesta #4 en: 10 Diciembre 2010, 22:26 pm »

estaba escribiendo aquí una parrafada que te cagas porque no me aparecía el objeto y acabo de entender tu respuesta. Es cierto que me dá ese error, y no me había fijado en que al dar ese error se destruye el DeviceObject con lo cual es lógico que no este cargado.

Bueno ahora habrá que intentar crear el simbolic link de manera satisfactoria,

sigo intentandolo, un saludo. ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]Comunicar VB Con C++
Programación Visual Basic
aioros666 7 2,892 Último mensaje 30 Marzo 2007, 18:14 pm
por aioros666
como puedo comunicar VB con PHP?
Programación Visual Basic
dark hacker 6 2,963 Último mensaje 19 Julio 2007, 05:41 am
por Red Mx
comunicar dos redes lan
Redes
young0320 3 4,328 Último mensaje 27 Mayo 2013, 01:03 am
por dato000
Duda sobre cómo comunicar un fallo de seguridad
Seguridad
A2NX 5 2,907 Último mensaje 5 Enero 2015, 16:41 pm
por A2NX
Comunicar dos consolas de comandos (CMD)
Scripting
[Arg] $triker; 7 5,857 Último mensaje 15 Mayo 2016, 02:56 am
por [Arg] $triker;
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines