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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Obtener handles de ficheros asociados a un proceso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener handles de ficheros asociados a un proceso  (Leído 5,371 veces)
mmob

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Obtener handles de ficheros asociados a un proceso
« en: 29 Octubre 2007, 11:18 am »

Alguien podría indicarme cómo obtener la lista de ficheros abiertos por un proceso (Process)? es posible? de no ser posible podríais decirme cómo obtener la lista de archivos abiertos? aunque creo que lo primero es posible.
Muchas gracias


En línea

mmob

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #1 en: 30 Octubre 2007, 14:25 pm »

La solución con la que suelo encontrarme pasa por utilizar la función del API ntQuerySystemInformation (ntdll.dll), incluso hay ejemplos en C# en la web, problema, es necesario el uso de un driver, en mi caso, la aplicación no carga este driver (que muy amablemente habían incluido con el ejemplo), al ejecutar me saca el error "El sistema no puede hallar el archivo especificado" cuando carga el driver me aseguro que la ruta y el nombre del fichero .sys sea correcto, pero ni así, como no sea un tercer fichero referenciado por el sys no se que pueda ser.
Creo que por no cargar este driver es por lo después la aplicación me muestra todos los handles del proceso que le indico menos los correspondientes a los ficheros (que es lo que realmente necesito).
Si podeis ayudarme os lo agradecería.


En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #2 en: 30 Octubre 2007, 23:51 pm »

Eso mismo te hiba a decir, con un driver esto se soluciona muy rapido....si quieres saber los archivos que abre X programa tambien se puede hacer sin necesidad de driver, inyectando una Dll al iniciarse el archivo, lo malo de este metodo es que sera solo para una aplicación concreta....con esa Dll hookeas la api que quieras (OpenFile) y listo, a interceptar llamadas.....

Si te interesa eso de la Dll en este mismo post deje un codigo en C# para inyectar Dll's  :)
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
mmob

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #3 en: 6 Noviembre 2007, 09:33 am »

Bueno, se puede utilizar el comando HANDLE, que podemos descargar de http://www.microsoft.com/technet/sysinternals/utilities/handle.mspx, en C# se puede iniciar un proceso redirigiendo la salida y cogemos nosotros el resultado.
Problema: no salen los archivos que tenemos abiertos en remoto, solo los que tengamos abiertos de nuestra propia máquina, es decir, si yo abro un documento de Word que se encuentra en mi maquina y otro que está en otra máquina, el mio sale en la lista, el otro no.
Conoceis algun comando del estilo pero que sirva para que tambien salgan los remotos?.
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #4 en: 6 Noviembre 2007, 15:53 pm »

Una cosa _Hendrix, pero las dll's de C# valen para inyectar? la verdad es q nunca he provado por q no se como definir la DllMain... :huh:
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #5 en: 6 Noviembre 2007, 17:32 pm »

No ya que no son nativas...;)
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
mmob

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #6 en: 6 Noviembre 2007, 18:43 pm »

Nunca he hecho eso de inyectar una dll, podrías explicarme por favor?
Serviria tambien para detectar los archivos que la aplicacion abre y que estan alojados en otra maquina?
Gracias por vuestro tiempo.
En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #7 en: 6 Noviembre 2007, 19:24 pm »

ntQuerySystemInformation la puedes usar desde modo usuario.
En línea

mmob

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Obtener handles de ficheros asociados a un proceso
« Respuesta #8 en: 17 Diciembre 2007, 17:43 pm »

Hola de nuevo, para el tema de averiguar archivos que son abiertos he tenido que inclinarme por utilizar un file system filter driver.
Estoy en pruebas con el del FileMon (filem.sys). Lo cargo sin problema, e incluso me responde al comando de versión (me devuelve la versión correctamente) pero a la hora de pedirle los datos relativos a las IRPs "capturadas" me devuelve una cadena vacia. Por supuesto antes fijo los drivers a escuchar, establezco un filtro con el tipo de fichero que me interesa y activo el proceso de filtrado. Realmente no se si es alguno de estos comandos el que configuro mal.
Alguien conoce este driver y puede darme alguna pista? por ejemplo, acerca de los parametros que deben recibir.
NOTA: El desarrollo de prueba es una aplicacion para consola escrita en C# 2005.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Obtener PID (id de Proceso) desde Java
Java
Lopardo 6 16,156 Último mensaje 4 Enero 2011, 19:54 pm
por Debci
Handles (VB.NET)
.NET (C#, VB.NET, ASP)
abreu20011 4 8,656 Último mensaje 27 Agosto 2011, 03:20 am
por Keyen Night
Sobre los Handles del SystemTray...
.NET (C#, VB.NET, ASP)
Eleкtro 0 1,656 Último mensaje 9 Abril 2013, 19:48 pm
por Eleкtro
obtener peb del proceso depurado
Ingeniería Inversa
aguml 4 2,628 Último mensaje 19 Junio 2014, 05:32 am
por x64core
Batch - Obtener datos de listado de ficheros
Scripting
movaj 1 1,968 Último mensaje 24 Enero 2017, 13:39 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines