¿Alguna API de Windows para obtener identificadores de archivos además de createfile y openfile?

StackOverflow https://stackoverflow.com/questions/13806

  •  08-06-2019
  •  | 
  •  

Pregunta

Estoy intentando espiar un archivo de registro en el que está escribiendo una aplicación.

He conectado con éxito createfile con la biblioteca de desvíos de MSR, pero parece que nunca se llama a createfile con el archivo que estoy interesado en espiar.También intenté conectar openfile con los mismos resultados.

No soy un programador experimentado en Windows/C++ (ni siquiera un programador experimentado), por lo que mis dos pensamientos iniciales fueron que la aplicación llama a createfile antes de conectar las API, o que hay alguna otra API para crear archivos/obtener identificadores para ellos. .

Editar:Gracias por las dos grandes respuestas.Votaría a favor de la respuesta de codingthewheel ya que fue informativa, pero no tengo suficiente representante :(

¿Fue útil?

Solución

Puedes usar Sysinternal ArchivoMon.Es un monitor excelente que puede decirle exactamente qué llamadas del sistema relacionadas con los archivos se están realizando y cuáles son los parámetros.

Creo que este enfoque es mucho más fácil que conectar llamadas API y mucho menos intrusivo.

Otros consejos

Aquí hay un enlace que podría ser de utilidad:

Monitoreo de archivos estilo guerrilla con C# y C++

Es posible crear un archivo sin tocar la API CreateFile, pero ¿puedo preguntar? ¿Qué método de inyección de DLL estás usando??Si está utilizando algo como Windows Hooks, su DLL no se instalará hasta algún momento después de que se inicialice la aplicación de destino y perderá las primeras llamadas a CreateFile.Mientras que si está utilizando algo como DetourCreateProcessWithDll, su gancho CreateFile se puede instalar antes de que se ejecute cualquier código de inicio de la aplicación.

En mi experiencia, el 99,9% de los archivos creados/abiertos resultan en una llamada a CreateFile, incluidos los archivos abiertos a través de bibliotecas C y C++, bibliotecas de terceros, etc.Tal vez haya algunas funciones DDK no documentadas que no se dirigen a través de CreateFile, pero para un archivo de registro típico, lo dudo.

Monitor de proceso de sysinternals también podría ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top