Filemon – El monitor de archivos de Sysinternals que desveló los secretos del sistema de archivos de Windows
Descripción del programa Filemon
Filemon (File Monitor) es una herramienta de monitorización del sistema de archivos desarrollada por Mark Russinovich y Bryce Cogswell, los fundadores de Sysinternals, que permite observar en tiempo real todas las operaciones de lectura, escritura, apertura y eliminación de archivos realizadas por las aplicaciones y el sistema operativo Windows.
Su función principal consiste en capturar y mostrar cada acceso a archivos que ocurre en el sistema, incluyendo el proceso que realiza la operación, la ruta del archivo, el resultado de la operación y la duración o marca de tiempo de cada evento.
La historia de Filemon se remonta a finales de la década de 1990, cuando Russinovich y Cogswell desarrollaron esta herramienta para explorar el funcionamiento interno de Windows NT. Fue una de las primeras utilidades en proporcionar una visión detallada y accesible del sistema de archivos, convirtiéndose rápidamente en un estándar para administradores de sistemas, desarrolladores y analistas de malware.
La última versión estable, la 7.04, fue lanzada en noviembre de 2006. A partir de Windows 2000 SP4, Windows XP SP2, Windows Server 2003 SP1 y Windows Vista, Filemon fue reemplazado por Process Monitor, una herramienta unificada que combina las funcionalidades de Filemon y Regmon. En septiembre de 2009, Filemon fue oficialmente retirado del sitio de Sysinternals, marcando el final de una era para esta herramienta pionera.
Lo más destacado de Filemon reside en su simplicidad y profundidad. A pesar de su pequeño tamaño, la herramienta captura una cantidad masiva de información y la presenta en una interfaz clara y navegable. Permite a los usuarios responder preguntas fundamentales: ¿por qué una aplicación no se inicia? ¿qué archivos está leyendo constantemente un proceso en segundo plano? ¿dónde está guardando sus datos un programa?.
Su capacidad para filtrar eventos por proceso, archivo o tipo de operación, y para mostrar la duración de cada acceso, lo convirtió en una herramienta indispensable para la resolución de problemas, el análisis de rendimiento y el estudio del comportamiento del malware. Su legado es tan significativo que incluso la revista Virus Bulletin destacó su importancia como herramienta estándar en el análisis de virus y troyanos.
¿Necesitas saber exactamente qué archivos está utilizando una aplicación o por qué tu sistema está accediendo constantemente al disco?
Características clave de Filemon
1. Monitorización en tiempo real de todas las operaciones de archivos
La característica principal de Filemon es su capacidad para capturar y mostrar en tiempo real todas las operaciones del sistema de archivos. Desde el momento en que se inicia, la herramienta intercepta y registra eventos como aperturas (CreateFile), lecturas (ReadFile), escrituras (WriteFile), eliminaciones (DeleteFile), cierres de archivos y consultas de atributos. Cada evento se presenta en una línea de salida con campos detallados que incluyen:
- Número de secuencia: Un identificador único para cada evento, útil para detectar pérdidas de datos por desbordamiento de buffers.
- Hora o duración: Puede mostrar la hora exacta del evento o el tiempo que tardó en completarse la operación.
- Proceso: Nombre del ejecutable que realizó la operación.
- Ruta: Ruta completa del archivo o directorio afectado.
- Resultado: Código de estado de la operación (por ejemplo, SUCCESS, FILE NOT FOUND, NO SUCH FILE).
- Otros: Para operaciones de lectura/escritura, muestra el desplazamiento (offset) dentro del archivo y la longitud de los datos transferidos.
2. Filtrado flexible para aislar eventos relevantes
Filemon incluye potentes capacidades de filtrado que permiten al usuario centrarse en la información relevante. Los filtros pueden aplicarse por proceso, por ruta de archivo o por tipo de operación.
Se pueden configurar filtros de inclusión (para mostrar solo los eventos que coinciden con un patrón) y filtros de exclusión (para ocultar eventos no deseados). Los patrones admiten el uso del comodín * y pueden combinar múltiples cadenas separadas por punto y coma (;).
Por ejemplo, para monitorizar solo los accesos de Microsoft Word a archivos que contengan la palabra «Windows», se puede configurar un filtro de inclusión Winword*Windows. Los filtros se guardan entre sesiones, lo que facilita ignorar la actividad de fondo monótona, como la de los antivirus que verifican sus archivos de definición cada segundo.
3. Medición de duración de operaciones (timing)
Una característica valiosa para el análisis de rendimiento es la capacidad de Filemon para mostrar la duración de cada operación de archivo en lugar de la marca de tiempo. Esto permite identificar cuellos de botella en el sistema de archivos, como lecturas o escrituras que están tardando más de lo esperado. Por ejemplo, durante el desarrollo de Excel 2000, Microsoft utilizó Filemon para comparar el tiempo de ejecución de operaciones de entrada/salida entre diferentes versiones con distintas optimizaciones.
4. Selección de volúmenes y soporte para unidades de red
Filemon permite al usuario seleccionar qué volúmenes desea monitorizar. Puede supervisar unidades de disco duro locales, disquetes, CD-ROM, y también unidades de red. Esto es especialmente útil para analizar el acceso a archivos compartidos en entornos empresariales. Además, la versión Enterprise Edition de Filemon permitía la monitorización remota de sistemas Win9x/NT, así como la visualización simultánea de la salida de diferentes equipos.
5. Registro de salida y análisis offline
La ventana de resultados de Filemon puede guardarse en un archivo para su análisis offline. Esto es útil cuando se realiza una monitorización prolongada o cuando se necesita compartir los resultados con otros analistas. La herramienta también permite configurar la profundidad del historial, limitando el número máximo de líneas almacenadas en memoria para evitar el consumo excesivo de recursos.
6. Funcionamiento a nivel de kernel mediante un driver filtro
El corazón de Filemon es un controlador de filtro de sistema de archivos que se inserta en la cadena de llamadas del sistema. Para cada unidad seleccionada, Filemon crea un objeto de dispositivo de filtro y lo adjunta al objeto de dispositivo del sistema de archivos. De esta manera, intercepta todos los Paquetes de Solicitud de Entrada/Salida (IRP) dirigidos a la unidad, registra la información relevante y luego los pasa al controlador del sistema de archivos subyacente.
También es capaz de interceptar las llamadas Fast I/O, una ruta de acceso rápido que bypassa la creación de IRP para operaciones en caché. Este funcionamiento a bajo nivel le permite capturar incluso operaciones del sistema que no son visibles para las aplicaciones normales.
Explicación detallada de las funcionalidades
El funcionamiento de Filemon se basa en su capacidad para posicionarse como intermediario entre las aplicaciones y el sistema de archivos. Cuando una aplicación realiza una operación como abrir un archivo, la solicitud se convierte en un IRP dentro del Gestor de E/S (I/O Manager) de Windows. Dado que el controlador de Filemon está adjunto al dispositivo del sistema de archivos, el Gestor de E/S le entrega el IRP a Filemon antes de que llegue al controlador de destino.
Al recibir el IRP, Filemon registra información como el proceso que lo originó, la operación solicitada (por ejemplo, IRP_MJ_READ para lectura) y la ruta del archivo. Luego, marca el IRP para ser notificado nuevamente cuando la operación se complete. Una vez que el controlador del sistema de archivos termina de procesar la solicitud, Filemon registra el resultado (éxito o código de error) y el tiempo de finalización, y finalmente pasa el IRP de vuelta al Gestor de E/S para que continúe su camino.
La interfaz de usuario se comunica periódicamente con el controlador para obtener los últimos lotes de actividad almacenados en buffers internos y los muestra en la ventana de salida. Si la actividad del sistema de archivos es muy intensa, los buffers pueden desbordarse, lo que se indica mediante un salto en los números de secuencia, alertando al usuario de que se han perdido eventos.
Descarga e instalación de Filemon
- Página oficial: No disponible (Filemon fue retirado del sitio de Sysinternals en septiembre de 2009)
- Última versión: 7.04 (noviembre de 2006)
- Tamaño: Pequeño (aproximadamente 200 KB)
- Sistemas operativos compatibles: Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 (y versiones de 64 bits de estos sistemas); Windows 95, 98, Me
- Requisitos: Privilegios de administrador para ejecutar la herramienta
- Licencia: Freeware (gratuito)
- Idiomas: Inglés
- Soporte técnico: No disponible (herramienta heredada)
Nota importante: Filemon es una herramienta heredada que ha sido oficialmente reemplazada por Process Monitor (Procmon). Para sistemas operativos modernos (Windows 10, Windows 11), se recomienda utilizar Process Monitor, que integra las funcionalidades de Filemon y Regmon en una única herramienta, con una interfaz más moderna y características adicionales. Filemon solo debe utilizarse en sistemas legacy (Windows 2000, XP, Server 2003) donde Process Monitor no está disponible.
Cómo usar Filemon
Paso 1: Iniciar Filemon
Ejecuta filemon.exe con privilegios de administrador. Filemon comenzará a capturar inmediatamente toda la actividad del sistema de archivos en todas las unidades locales. Si se desea iniciar sin capturar, se puede usar el conmutador /o en la línea de comandos.
Paso 2: Configurar la captura
Utiliza la barra de herramientas para controlar la captura y la visualización:
- Botón de inicio/parada: Inicia o detiene la captura de eventos.
- Botón de limpiar: Borra la ventana de resultados.
- Botón de reloj/cronómetro: Alterna entre mostrar la hora del evento y la duración de la operación.
- Menú
Volumes: Permite seleccionar qué unidades o recursos de red se van a monitorizar. También se puede seleccionar «Network» para monitorizar accesos a recursos de red remotos.
Paso 3: Aplicar filtros
Para aislar la actividad de un proceso o archivo específico, accede a Edit > Filter/Highlight. En la ventana de filtros, introduce los patrones de proceso o ruta en los campos de inclusión (Include) y exclusión (Exclude). Por ejemplo, para monitorizar solo los accesos realizados por el proceso notepad.exe, introduce notepad.exe en el campo de inclusión. Para monitorizar solo los accesos a una carpeta específica, introduce su ruta. Los filtros admiten el comodín * y múltiples patrones separados por ;.
Paso 4: Analizar los resultados
La ventana principal muestra los eventos capturados. Revisa las columnas para entender la actividad:
- #: Número de secuencia del evento.
- Time: Hora o duración de la operación.
- Process: Nombre del proceso que realizó la operación.
- Request: Tipo de operación (IRP_MJ_READ, IRP_MJ_CREATE, etc.) o Fast I/O (FASTIO_READ, etc.).
- Path: Ruta completa del archivo o directorio.
- Result: Estado de la operación (SUCCESS, FILE NOT FOUND, etc.).
- Other: Información adicional, como el offset y la longitud para lecturas y escrituras.
Los códigos de estado como «FILE NOT FOUND» no siempre indican un problema; a menudo son parte del funcionamiento normal de una aplicación que busca archivos de configuración en múltiples ubicaciones. Si se observa una pérdida de datos, los números de secuencia mostrarán un salto, indicando que los buffers internos se desbordaron.
Paso 5: Guardar los resultados
Para guardar la captura, selecciona File > Save. Elige el nombre de archivo y la ubicación. La salida puede guardarse en formato de texto para su análisis posterior.
Observaciones sobre el programa Filemon
La principal diferencia técnica de Filemon frente a otras herramientas de monitorización de su época era su funcionamiento a nivel de kernel mediante un driver filtro, lo que le permitía capturar todas las operaciones del sistema de archivos sin excepción, incluso aquellas realizadas por el propio sistema operativo.
A diferencia de los monitores basados en enganches (hooks) a nivel de usuario, Filemon operaba de forma transparente y con una latencia mínima, proporcionando una imagen completa y fiel de la actividad del sistema de archivos.
El impacto de Filemon en la comunidad de sistemas y seguridad es incalculable. Fue una de las herramientas fundamentales para que los administradores pudieran resolver problemas complejos de configuración y rendimiento. Para los desarrolladores, era esencial para entender el comportamiento de sus aplicaciones y optimizar el acceso a archivos.
Y para los analistas de malware, se convirtió en un estándar para observar el comportamiento de los virus y troyanos, permitiendo identificar qué archivos modificaban, qué procesos creaban y dónde se instalaban. La revista Virus Bulletin destacó su utilidad, señalando que era una herramienta básica en el análisis de malware.
El legado de Filemon perdura en Process Monitor, la herramienta que lo sucedió. Cuando Microsoft adquirió Sysinternals en 2006, Mark Russinovich recodificó completamente las funcionalidades de Filemon y Regmon en una nueva herramienta unificada, Process Monitor, lanzada en noviembre de ese mismo año.
Aunque Filemon fue oficialmente retirado en 2009, su nombre sigue siendo sinónimo de monitorización de archivos en Windows, y su diseño e interfaz influyeron directamente en la herramienta que hoy utilizan millones de profesionales.
Limitaciones importantes:
- ❌ Herramienta heredada: Filemon fue retirado en 2009 y no es compatible con versiones modernas de Windows (10, 11).
- ❌ Funcionalidad limitada: No monitoriza el registro del sistema ni la actividad de red, a diferencia de su sucesor, Process Monitor.
- ❌ Desbordamiento de buffers: En sistemas con alta actividad de archivos, los buffers internos pueden desbordarse, resultando en la pérdida de eventos.
- ❌ Interfaz antigua: La interfaz de usuario es simple y carece de las funciones modernas de Process Monitor, como la agrupación de eventos y la generación de perfiles.
Si trabajas con sistemas operativos modernos (Windows 10, Windows 11), la herramienta recomendada es Process Monitor (Procmon), que combina las funcionalidades de Filemon y Regmon en una interfaz unificada y actualizada. Para entornos legacy (Windows 2000, XP, Server 2003), Filemon sigue siendo una herramienta funcional y valiosa.
Sección FAQ
¿Filemon es gratis o de pago?
Filemon era completamente gratuito (freeware). No existía versión de pago, aunque se ofrecía una edición Enterprise de pago con capacidades de monitorización remota. La versión estándar siempre fue gratuita.
¿Funciona en Windows 10 y Windows 11?
No. Filemon fue diseñado para sistemas hasta Windows XP y Windows Server 2003. Fue retirado en 2009 y no es compatible con versiones modernas de Windows. Para Windows 10 y 11, se recomienda utilizar Process Monitor, que es su sucesor oficial.
¿Qué diferencia a Filemon de Process Monitor?
Process Monitor (Procmon) es el sucesor de Filemon. Combina las funcionalidades de Filemon (monitor de archivos) y Regmon (monitor de registro) en una sola herramienta. Process Monitor añade monitorización de procesos, hilos y actividad de red, ofrece una interfaz más moderna, mejor gestión de filtros y una mayor estabilidad en sistemas modernos.
¿Cómo detecto si Filemon ha perdido eventos?
Filemon asigna un número de secuencia único a cada evento. Si hay un salto en estos números (por ejemplo, se pasa del evento 100 al 105), significa que los buffers internos del driver se desbordaron y se perdieron algunos eventos. Para evitar esto, se pueden aplicar filtros para reducir el volumen de eventos capturados.
¿Puedo monitorizar unidades de red con Filemon?
Sí, Filemon permite monitorizar unidades de red. En el menú Volumes, selecciona la opción «Network» para capturar accesos a recursos de red, incluyendo archivos compartidos remotos y accesos a través de nombres UNC. También puede monitorizar canales con nombre (named pipes) utilizados por la comunicación entre procesos.
