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
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algunas dudas sobre Drivers...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Algunas dudas sobre Drivers...  (Leído 9,857 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Algunas dudas sobre Drivers...
« Respuesta #10 en: 11 Noviembre 2013, 02:45 am »

Por lo que leo en la wiki, parece mas un problema que una solución  :rolleyes:
y solo en 64bits, en fin.. supongo que debe haber formas de saltarse eso.. cuando me complique ese asunto lo estudio mejor, esta bueno saberlo...
Por el momento, me queda mucho por aprender de las tablas, estructuras, y funciones para dar los primeros pasos con los drivers..

Otra cosa que no me queda claro son las funciones tipo Zw* y Nt*, esas funciones salen de otros drivers, no? Digamos, son exportadas por otros drivers? (Ahora no tengo el PE Explorer para fijarme), ya leí la wiki, pero no es muy clara, al parecer no existe mayor diferencia entre unas y otras,, ( Zw y Nt )

Editado:
Citar
Nt or Zw are system calls declared in ntdll.dll and ntoskrnl.exe. When called from ntdll.dll in user mode, these groups are almost exactly the same; they trap into kernel mode and call the equivalent function in ntoskrnl.exe via the SSDT. When calling the functions directly in ntoskrnl.exe (only possible in kernel mode), the Zw variants ensure kernel mode, whereas the Nt variants do not.[3] The Zw prefix does not stand for anything.
Antes no me habia quedado claro, ahora si.. Listo!


« Última modificación: 11 Noviembre 2013, 02:49 am por Vaagish » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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


Ver Perfil WWW
Re: Algunas dudas sobre Drivers...
« Respuesta #11 en: 11 Noviembre 2013, 10:39 am »

Por lo que leo en la wiki, parece mas un problema que una solución  :rolleyes:
y solo en 64bits, en fin.. supongo que debe haber formas de saltarse eso.. cuando me complique ese asunto lo estudio mejor, esta bueno saberlo...

Un problema sera para los que hacen malware, practicamente (por no decir todo) se puede hacer con callbacks y drivers de tipo filtro asi que no hay necesidad real de hooks.

Otra cosa que no me queda claro son las funciones tipo Zw* y Nt*, esas funciones salen de otros drivers, no? Digamos, son exportadas por otros drivers? (Ahora no tengo el PE Explorer para fijarme), ya leí la wiki, pero no es muy clara, al parecer no existe mayor diferencia entre unas y otras,, ( Zw y Nt )

Son del propio Kernel y si hay una diferencia importante, cuando llamas desde modo Kernel tenes que usar Zw (en modo Usuario una es alias de la otra, tienen la misma direccion).

http://www.osronline.com/article.cfm?id=257


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
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Algunas dudas sobre Drivers...
« Respuesta #12 en: 11 Noviembre 2013, 17:32 pm »

Citar
cuando llamas desde modo Kernel tenes que usar Zw (en modo Usuario una es alias de la otra, tienen la misma direccion).

Okk! Esto se empieza a aclara  :P

Una ultima cosa, y sigo estudiando.. por la vuelta he visto este tipo de funciones:
Citar

ZWQUERYSYSTEMINFORMATION ZwQuerySystemInformationAddress = NULL;

   status = ((ZWQUERYSYSTEMINFORMATION)(ZwQuerySystemInformationAddress)) (
               SystemInformationClass,
               SystemInformation,
               SystemInformationLength,
               ReturnLength );
Por que va entre parentesis? No se usa igual que las funciones en modo usuario..  :silbar:
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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


Ver Perfil WWW
Re: Algunas dudas sobre Drivers...
« Respuesta #13 en: 11 Noviembre 2013, 17:47 pm »

Okk! Esto se empieza a aclara  :P

Una ultima cosa, y sigo estudiando.. por la vuelta he visto este tipo de funciones:Por que va entre parentesis? No se usa igual que las funciones en modo usuario..  :silbar:

¿Es o no es codigo basura ese? Te recomiendo otra vez aprender con el WDK.
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
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Algunas dudas sobre Drivers...
« Respuesta #14 en: 11 Noviembre 2013, 18:23 pm »

Citar
¿Es o no es codigo basura ese?
Por que codigo basura?

Bueno, si Eternal.. creo que ahora puedo empezar con WDK. Convengamos que el WDK no tiene nada de teoría, es como ir a la guerra con un palito..

Saludos!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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


Ver Perfil WWW
Re: Algunas dudas sobre Drivers...
« Respuesta #15 en: 11 Noviembre 2013, 18:28 pm »

Por que codigo basura?

Es muy sencillo: ¿De donde salio?

Bueno, si Eternal.. creo que ahora puedo empezar con WDK. Convengamos que el WDK no tiene nada de teoría, es como ir a la guerra con un palito..

No, el WDK tiene la mayor referencia que existe ... tal vez no la hayas encontrado ... ademas en los ejemplos hay varios misiles pero bueno ...
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
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Algunas dudas sobre Drivers...
« Respuesta #16 en: 11 Noviembre 2013, 18:34 pm »

El ntosknrl y el hal son cargados durante el proceso de carga del S.O., luego este carga todos los demas drivers y procesos del sistema.

Okk! Esto se empieza a aclara  :P

Una ultima cosa, y sigo estudiando.. por la vuelta he visto este tipo de funciones:Por que va entre parentesis? No se usa igual que las funciones en modo usuario..  :silbar:
Si es una funcion de hook para NtQuerySystemInformation, Se pasa a la funcion original los parametros que son pasados al hook de esta manera
se intercepta el resultado, aunque no hay ninguna necesidad de hacer un casting del puntero a la función si la variable ya es declarada
como tal.


Por cierto:
@EI: No seria usar las Nt's desde modo kernel:

Zw:
Código:
kd> u nt!ZwCreateFile L6
nt!ZwCreateFile:
804fe08c b825000000      mov     eax,25h
804fe091 8d542404        lea     edx,[esp+4]
804fe095 9c              pushfd
804fe096 6a08            push    8
804fe098 e884f40300      call    nt!KiSystemService (8053d521)
804fe09d c22c00          ret     2Ch

Nt:
Código:
kd> u nt!NtCreateFile L25
nt!NtCreateFile:
8056e38c 8bff            mov     edi,edi
8056e38e 55              push    ebp
8056e38f 8bec            mov     ebp,esp
8056e391 33c0            xor     eax,eax
8056e393 50              push    eax
8056e394 50              push    eax
8056e395 50              push    eax
8056e396 ff7530          push    dword ptr [ebp+30h]
8056e399 ff752c          push    dword ptr [ebp+2Ch]
8056e39c ff7528          push    dword ptr [ebp+28h]
8056e39f ff7524          push    dword ptr [ebp+24h]
8056e3a2 ff7520          push    dword ptr [ebp+20h]
8056e3a5 ff751c          push    dword ptr [ebp+1Ch]
8056e3a8 ff7518          push    dword ptr [ebp+18h]
8056e3ab ff7514          push    dword ptr [ebp+14h]
8056e3ae ff7510          push    dword ptr [ebp+10h]
8056e3b1 ff750c          push    dword ptr [ebp+0Ch]
8056e3b4 ff7508          push    dword ptr [ebp+8]
8056e3b7 e860d8ffff      call    nt!IoCreateFile (8056bc1c)
8056e3bc 5d              pop     ebp
8056e3bd c22c00          ret     2Ch
8056e3c0 cc              int     3
8056e3c1 cc              int     3
8056e3c2 cc              int     3
8056e3c3 cc              int     3
8056e3c4 cc              int     3
8056e3c5 cc              int     3


En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Algunas dudas sobre Drivers...
« Respuesta #17 en: 11 Noviembre 2013, 18:49 pm »

Citar
Es muy sencillo: ¿De donde salio?
Haa,, si.. seguro es sencillo, no entendia por que usaba asi a la funcion..

Citar
Si es una funcion de hook para NtQuerySystemInformation, Se pasa a la funcion original los parametros que son pasados al hook
Exactamente

Lo que hace, que me maree era esto:
Citar
un casting del puntero a la función si la variable ya es declarada como tal

Citar
No seria usar las Nt's desde modo kernel:
Tengo que aprender a usar Windbg urgente..  :silbar:
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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


Ver Perfil WWW
Re: Algunas dudas sobre Drivers...
« Respuesta #18 en: 11 Noviembre 2013, 18:53 pm »

El ntosknrl y el hal son cargados durante el proceso de carga del S.O., luego este carga todos los demas drivers y procesos del sistema.

Si, el loader se encarga de cargar todos los boot drivers.

Por cierto:
@EI: No seria usar las Nt's desde modo kernel:

No, Zw, lee el articulo que deje antes.

Haa,, si.. seguro es sencillo, no entendia por que usaba asi a la funcion..

No se, deberia ser MUY sencillo decir de donde lo sacaste ... salvo que no lo quieras decir ... Y no hay razon para llamar de esa manera, es basura simplemente.
« Última modificación: 11 Noviembre 2013, 18:55 pm por Eternal Idol » 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
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Algunas dudas sobre Drivers...
« Respuesta #19 en: 11 Noviembre 2013, 18:58 pm »

Na, por que voy a tener problemas en decir de donde lo saque?
Esta claro que no lo hice yo.. de ser asi, no estaria preguntando tanto.. lo saque de un rootkit, te paso el autor, esta su firma en el codigo..

           Agony rootkit
           
               by Intox

Yo intento aprender EI, nada mas..

Saludos!
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algunas dudas sobre el erize 1W
Hacking Wireless
acastrolorenzo 3 4,348 Último mensaje 26 Septiembre 2010, 03:02 am
por buite
Algunas dudas sobre el uso de trojans « 1 2 »
Hacking
erniker 14 8,705 Último mensaje 2 Diciembre 2011, 14:16 pm
por erniker
...Algunas dudas sobre la WWE (lucha libre)
Foro Libre
Eleкtro 5 3,845 Último mensaje 17 Octubre 2016, 18:10 pm
por basickdagger
algunas preguntas sobre drivers en windows
Windows
MRx86 4 3,189 Último mensaje 31 Mayo 2017, 17:58 pm
por Randomize
Algunas dudas sobre Pretty Good Privacy
Dudas Generales
WilliamWalance22 3 3,552 Último mensaje 20 Octubre 2017, 23:17 pm
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines