Autor
|
Tema: Algunas dudas sobre Drivers... (Leído 9,857 veces)
|
Vaagish
Desconectado
Mensajes: 875
|
Por lo que leo en la wiki, parece mas un problema que una solución 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: 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
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Por lo que leo en la wiki, parece mas un problema que una solución 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
Mensajes: 875
|
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 Una ultima cosa, y sigo estudiando.. por la vuelta he visto este tipo de funciones: 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..
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Okk! Esto se empieza a aclara 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.. ¿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
Mensajes: 875
|
¿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
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 1.908
|
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 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.. 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: 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: 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
Mensajes: 875
|
Es muy sencillo: ¿De donde salio? Haa,, si.. seguro es sencillo, no entendia por que usaba asi a la funcion.. 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: un casting del puntero a la función si la variable ya es declarada como tal No seria usar las Nt's desde modo kernel: Tengo que aprender a usar Windbg urgente..
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 875
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Algunas dudas sobre el erize 1W
Hacking Wireless
|
acastrolorenzo
|
3
|
4,348
|
26 Septiembre 2010, 03:02 am
por buite
|
|
|
Algunas dudas sobre el uso de trojans
« 1 2 »
Hacking
|
erniker
|
14
|
8,705
|
2 Diciembre 2011, 14:16 pm
por erniker
|
|
|
...Algunas dudas sobre la WWE (lucha libre)
Foro Libre
|
Eleкtro
|
5
|
3,845
|
17 Octubre 2016, 18:10 pm
por basickdagger
|
|
|
algunas preguntas sobre drivers en windows
Windows
|
MRx86
|
4
|
3,189
|
31 Mayo 2017, 17:58 pm
por Randomize
|
|
|
Algunas dudas sobre Pretty Good Privacy
Dudas Generales
|
WilliamWalance22
|
3
|
3,552
|
20 Octubre 2017, 23:17 pm
por Orubatosu
|
|