secundarios - En Windows, ¿cómo puedo rastrear en C qué archivos lee y escribe un proceso secundario?
proceso primario y secundario hartmann (5)
Como sugirió, esta es una tarea bastante simple de resolver con API Hooking with DLL injection.
Este es un artículo bastante bueno sobre la aplicación: http://www.codeproject.com/Articles/2082/API-hooking-revealed
Creo que puedes encontrar artículos más recientes sobre el tema.
Sin embargo, es probable que necesite usar C ++ para implementar dicha utilidad. Por cierto, los programas pueden deshabilitar la inyección de dll, por ejemplo, no pude usar este enfoque en la versión de prueba de photoshop.
Por lo tanto, es posible que desee verificar si puede inyectar DLL en el proceso que desea con una solución existente antes de comenzar a escribir la suya propia.
Buena suerte.
Mi objetivo es determinar cuándo ejecutar un comando, precisamente qué archivos lee y escribe. En Linux, puedo hacer esto usando ptrace (con trabajo, similar a lo que hace strace) y en freebsd y MacOS, puedo hacer esto con el comando del sistema ktrace. ¿Qué utilizarías para obtener esta información en windows?
Mi investigación hasta ahora sugiere que o bien uso la interfaz del depurador (similar a ptrace de muchas maneras) o tal vez ETW. Una tercera alternativa es interponer una DLL para interceptar las llamadas del sistema a medida que se realizan. Desafortunadamente, no tengo la experiencia para adivinar qué tan difícil será cada uno de estos enfoques.
¿Alguna sugerencia?
Consulte este enlace especial para su pregunta ... Esto podría ayudarle ¿Hay algo como linux ptrace syscall en Windows?
Además, si está ejecutando versiones más bajas como XP, debería consultar este enlace ... https://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
Déjame saber si no ayuda
También me gustaría que revisen esto, hombre ... Monitoreando ciertas llamadas al sistema realizadas por un proceso en Windows
Desafortunadamente, parece que no hay una manera fácil de interceptar las operaciones de nivel de archivo en Windows.
Aquí hay algunos consejos:
- puede intentar usar FileMon desde sysinternals si es suficiente para sus necesidades, o tratar de ver la fuente de la herramienta
- Podría usar software comercial como Detours . Detours cuidado, nunca lo usé y no estoy seguro de que realmente satisfaga sus necesidades.
Si desea una mejor comprensión y no tiene miedo de hacerlo a mano , la forma de interceptación de archivos IO de Windows está utilizando un controlador de filtro de sistema de archivos . De hecho, hay un FilterManager integrado en el sistema de Windows que puede reenviar todas las llamadas del sistema de archivos a los minifiltros .
Para construirlo, FilterManager proporciona la interfaz con el sistema, y solo tiene (...) para codificar e instalar el minifiltro que realiza el filtrado real. Tenga en cuenta que nunca probó que ...
Microsoft posee un montón de herramientas llamadas SysInternals . Existe un programa llamado Monitor de proceso que le mostrará todos los accesos a archivos para un proceso en particular. Esto es muy probable que lo que quieres.
Por favor, eche un vistazo al siguiente artículo:
http://www.codeproject.com/Articles/950/CDirectoryChangeWatcher-ReadDirectoryChangesW-all
Es una forma muy antigua pero en ejecución para ver los cambios de directorio.