Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#3491
Cita de: E0N en 25 Noviembre 2007, 12:44 PM
Eternal Idol, a riesgo de meter la pata, NtQuerySystemInformation es una api para
ser usada desde el kernel?

El que corre el riesgo  ;D Si hubieras abierto el WinDbg y hecho lo que comentaba al principio sabrias que es posible modificar esta funcion manualmente incluso.

Cita de: E0N en 25 Noviembre 2007, 12:44 PMpor q yo en mi msdn no la veo, ademas por google vi esto:

Esta indocumentada como casi toda la NTDLL (DLL de modo Usuario).

http://undocumented.ntinternals.net/

Cita de: E0N en 25 Noviembre 2007, 12:44 PMDe ser para kernel tendré q seguir buscando ya  q estoy hookeando en ring 3...

Mira mi mensaje anterior:

ntdll!ZwQuerySystemInformation:
7c90e1aa b8220000c0      mov     eax,0C0000022h
7c90e1af c21000          ret     10h

En modo Usuario ZwQuerySystemInformation y NtQuerySystemInformation son la misma direccion (una es alias de la otra). Y lo que hacen es pasar a modo Kernel donde la nt!NtQuerySystemInformation se encargara de retornar los valores que como bien dice lo que citas solo estan disponibles (DIRECTAMENTE) en modo Kernel.
#3492
Cita de: Karman en 21 Noviembre 2007, 16:55 PM
tenía razón Eternal Idol, esa es la función y acá tenés la referencia de como se usa:

Me quedo con mi metodo, es mas generico (y mas legal ademas) ya que no solemos contar con el codigo de los programas que queremos analizar.
#3493
Cita de: E0N en 21 Noviembre 2007, 13:31 PM
Gracias a todos ;)

Probaré a hookear el api q comentas Eternal Idol a ver si consigo resultados, si no tendre q hacer lo q dice Karman....

Saludos

Probalo, el Task Manager (como la mayoria de programas - aunque no directamente -) usa esa funcion para enumerar los procesos.
#3494
Lo que yo hago normalmente es empezar por lo mas simple.

Ver las DLLs y funciones importadas: Dependency Walker.

Si con eso somos capaces de identificar las probables despues solo nos queda abrir el WinDbg ...

En este caso mi apuesta es por una simple funcion: NtQuerySystemInformation, paso a cambiar su codigo por:

ntdll!ZwQuerySystemInformation:
7c90e1aa b8220000c0      mov     eax,0C0000022h
7c90e1af c21000          ret     10h

Y veo que no se actualiza mas la barra de procesos  ;D
#3495
Ejercicios / Re: donde consigo lenguaje assembler
5 Noviembre 2007, 19:57 PM
El lenguaje es assembly y lo que te podes descargar, como ya te dijeron correctamente, es un assembler (programa que ensambla).

http://www.masm32.com/
http://flatassembler.net/
http://nasm.sourceforge.net/
#3496
De nada ►Freeze, para la segunda forma no necesitas usar mas que OpenProcess y GetModuleFileNameEx con 0 como el segundo parametro, ya que como indica la documentacion:

hModule
[in] Handle to the module. If this parameter is NULL, GetModuleFileNameEx returns the path of the executable file of the process specified in hProcess.

Por cierto si necesitas trabajar con servicios habilita el privilegio SE_DEBUG_NAME primero.
#3497
Usa szExePath no szModule.
#3498
Cita de: ►Freeze en 27 Octubre 2007, 00:15 AM
De este tipo de Apis no se mucho, no entiendo como obtener el Handle. :( :( :(

Si usas Module32First no necesitas ningun HANDLE.
#3499
Cita de: ►Freeze en 27 Octubre 2007, 00:04 AM
Disculpame, podrias aclararme bien como hacelo...?

Espero que no sea una molestia :(

La primera forma es exactamente igual que Process* solo que mas simple, no necesitas enumerar todos los modulos, el que te interesa es el primero.

Para la segunda necesitas abrir un HANDLE al proceso (OpenProcess) y despues pasarle a GetModuleFileNameEx ese handle como primer parametro, cero como segundo, un puntero a cadena como tercero y el tamaño de la misma como cuarto y ultimo.

Hace muchos años que no programo en VB asi que te doy una descripcion teorica, para la primera forma te podes guiar con el codigo que esta arriba, sigue la misma logica.
#3500
En ese caso podes recurrir a Module32First (el primer modulo siempre es el ejecutable) y el campo szExePath de la estructura MODULEENTRY32. Sino tambien GetModuleFileNameEx ...