SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

SET 15

112173 visitas

NTFS

      5025

Autor: Falken
-[ 0x10 ]--------------------------------------------------------------------
-[ NTFS ]--------------------------------------------------------------------
-[ by Falken ]--------------------------------------------------------SET-15-

                oooo   oooo ooooooooooo ooooooooooo oooooooo8
                 8888o  88  88  888  88  888    88 888         
                 88 888o88      888      888ooo8    888oooooo  
                 88   8888      888      888               888 
                o88o    88     o888o    o888o      o88oooo888  
                                                               
                       -=  Windows NT File System  =-
                           ----------------------

                                     by
                                   Falken


INTRODUCCION
=-=-=-=-=-=-

   Uno de los aspectos mas importantes de cualquier sistema operativo es
el sistema de ficheros que se use. Dependiendo de como este organizado el
sistema de ficheros, gozaremos de ciertas ventajas, como las cuotas de
usuario, los enlaces a otros archivos, etc. Pero tambien tendremos que
tener en cuenta algunos inconvenientes.

   Sistemas de ficheros los tenemos de todos los colorines, gustos y
sabores. Asi, el mas popular es FAT, el sistema dise€ado originalmente por
Microsoft para el MS DOS. Este sistema es de los mas simples que os podais
imaginar y hasta la version 2.0 no soportaba estructura de directorios ni
cosas similares.

   Gracias al sistema de ficheros elegido, podremos disponer de un mejor
aprovechamiento en el disco, ya sea duro o de Xixona. Asi, FAT se dise€o
en un principio pensando que no se superarian ciertas capacidades y asi,
pues acabamos con un disco fragmentado de una manera que ni os imaginais.

   Con Windows NT (Potato NT para los amigos), Microsoft incluye soporte
para el sistema FAT y a€ade un sistema nuevo propio, NTFS, del que se
hablan alabanzas y se le considera incluso hasta milagroso. ;)

   Ademas dicen que soporta HPFS, el sistema de ficheros de OS/2, pero en
Win NT 4.0 parece que no lo lleva de fabrica... Es algo por lo que hay que
pagar. Pero bueno, a nosotros lo que nos interesa ahora es NTFS, que para
algo este articulo se titula asi, no?


EL SISTEMA NTFS
=-=-=-=-=-=-=-=

   Para vendernos el NTFS, Microsoft se centra en la seguridad que aporta
este sistema, que como veremos es pura palabreria, al menos de momento.
Y como ven que por ahi no pueden, pues se empe€an en que con NTFS podemos
gestionar discos de gran tama€o sin problemas y que incorpora importantes
novedades sobre el resto de los sistemas conocidos. Supongo que se referiran
a la FAT y al HPFS, porque vamos, no han demostrado conocer otros sistemas.

   A todos lo que mas nos ha llamado la atencion sobre NTFS siempre ha sido
su aparente robustez. Pero es una robustez construida sobre castillos de
arena. Por que es seguro el PGP?  Pues porque entre otras cosas, sabes como
funciona y ves que es un problema matematico de gran importancia el
reventarlo.

   Y por que es seguro NTFS? Porque casi nadie conoce sus interioridades.
Se dijo que no se podia acceder desde otro sistema de archivos, y al poco
aparecio el NTFSDOS, para MS DOS, que permitia el acceso para lectura
a particiones NTFS que fueran de un tama€o no superior a 2 GBytes. Y como
eso es poco, pues aparecio el patch para GNU/Linux que permitia superar
esa barrera de los 2 GBytes al acceder a particiones NTFS.

   Pero claro, si, puedes leer, pero no puedes escribir... gratis. O al
menos hasta que los drivers para GNU/Linux esten listos en su version
definitiva, pues la version 2.0 de NTFSDOS para MS DOS permite la alteracion
de la informacion sin ningun problema. Eso si, estad dispuestos a pagar
unos $200 aproximadamente... Prefiero esperar y currar para GNU/Linux.

   Asi que como vemos, de momento la seguridad parece nula.

   Veamos ahora cuales son las diferencias mas significativas respecto a
usar NTFS en contra de cualquier otro sistema.

   De primeras, tenemos el aprovechamiento del espacio.

   Un sistema de archivos que funcione bajo Windows reparte el espacio del
disco en unidades minimas denominadas clusters. El sistema FAT suele usar
entradas de 16 bits para refenciar a cada cluster, con lo que podra
direccionar un maximo de 65536 clusters. La forma es la siguiente:


        Fichero 
      [ c0x0001 ]
         |
         `-->  c0x0001  --->  c0x000F  --->  c0x0213
             [ c0x000F ]    [ c0x0213 ]    [ c0xFFFF ]

   Lo que se indica en hexadecimal es el numero de cluster, correspondiendo
el 0xFFFF a la marca de fin de fichero. Entre corchetes hemos puesto cual
es el siguiente cluster del fichero, tal y como aparece en la FAT. Pensando
un poco nos damos cuenta del tama€o que tiene que tener un cluster si el
disco es muy grande. Seria un minimo de 4 KBytes.

   Si usamos clusters demasiado grandes, se produce lo que se llama
fragmentacion interna, o lo que es lo mismo, una perdida de datos a lo
absurdo, del estilo de usar 16 Kbytes para un fichero de 500 bytes.

   Otro ejemplo mas, pues los discos duros de hoy dia tienen un tama€o minimo
de 4 GBytes, lo que resulta en tener que usar clusters de 64 KBytes !!

   Por contra, NTFS usa 64 bits para el direccionamiento de los clusters,
lo que nos deja como resultado que con clusters de 512 bytes tiene de
sobra en muchas ocasiones.

   Centrandonos ahora en la seguridad, NTFS usa el mismo sistema de
seguridad del propio NT, usando las DACL (Discretionary Access Control Lists)
y las SACL (System Access Control Lists), con lo que en todo momento el
sistema sabe quien accede a que, cuando y que es lo que hace. Segun
Micro$oft, esto es una novedad que no existiria gracias a ellos... Me
pregunto si habran oido hablar alguna vez de UNIX.

   Otro detalle a tener en cuenta es el juego de caracteres permitido
a la hora de nombrar los ficheros dentro del sistema. Mientras que con
la FAT podemos usar el ASCII de 8 bits (creedme, lo he usado bajo DOS
y funciona), en NTFS disponemos del sistema Unicode de 16 bits, lo que
deja una posibilidad bastante amplia.

   Una cosa que si es algo que a mi me parece ventajoso en NTFS, y que
es algo que se deberia implementar en cualquier sistema de ficheros son las
medidas que toma para asegurar la integridad de los datos. NTFS es lo que
se denomina tolerante a fallos. Veamos a ver lo que se quiere decir con
esto.

   Los que useis GNU/Linux es probable que os hayais encontrado en la
situacion de haber sufrido un corte de luz, o cualquier alteracion en el
suministro electrico, que haya producido el apagado del sistema sin
cerrar archivos importantes del sistema. Esto nos provoca en la mayoria de
las situaciones la perdida de datos importantes y en muchos casos la
inconsistencia del sistema... Sip, se puede reparar, pero menudo rollo.

   En FAT es mucho mas cachondo, pues es facil destrozar el sistema, pero
si perder los datos con los que se esta trabajando.

   NTFS usa un fichero de logs en el que se van introduciendo las
modificaciones sobre el sistema de archivos, por lo que en caso de que el
sistema se cierre inesperadamente, se podra recuperar el estado anterior
sin ningun problema. El propio NT mira en el fichero de logs para ver cual
era la situacion y la reestablece automaticamente en el siguiente
arranque del sistema. Asi tenemos una perdida minima de datos.

   Por cierto, este fichero de logs es el denominado fichero de logs
de transacciones o Transactional Logging File.

   Lo del pantallazo azul es ya otra cosa, de la que si quereis, pues
hablamos en otro numero de SET para explicar que es lo que se esconde
detras de nuestro color favorito. ;)

   Sigamos...


LA GESTION DE DISCO
=-=-=-=-=-=-=-=-=-=

   Para crear una particion NTFS disponemos de dos utilidades basicas: el
FORMAT de toda la visa, o el NTFS Disk Management Disk Administrator, que
es lo mismo que decir el programa WINDISK.EXE. Por cualquiera de los dos
metodos podemos definir el tama€o del cluster que queremos usar. En el caso
en el que prefiramos dejarselo a la eleccion del programa, este usara los
datos que aparecen en la siguiente tabla:


                .----------------------------------------.
                | Tama€o del disco  | Tama€o del cluster |
                |-------------------|--------------------|
                | 512 MB o menos    | 512 bytes          |
                | 513 MB - 1024 MB  | 1 KByte            |
                | 1025 MB - 2048 MB | 2 KByte            |
                | 2049 MB o mas     | 4 KBytes           |
                `----------------------------------------'

   Hasta aqui todo normal, salvo un detalle que es simplemente anecdotico,
y que hasta el momento no se ha mencionado. El sistema FAT es usado tanto
en discos duros como en diskettes, al igual que el HPFS o incluso el
SFM de Macintosh. Pero intentad formatear un diskette en NTFS... Nones,
verdad? Pues se puede. Pero el sistema operativo no lo lleva incluido. Es
un servicio de valor a€adido de Micro$oft. Aunque podemos encontrar por
la red un programa gratuito para formatear un diskette en NTFS. Eso si,
no merece la pena, pero si estais interesados, estaba por:

        http://www.sysinternals.com

   Ademas, alli podreis obtener mas informacion sobre las interioridades
de Windows 95, Windows NT y Windows 98 ;)


DISSECCIONANDO NTFS
=-=-=-=-=-=-=-=-=-=

   Si bien la FAT se distribuye en el sector de arranque, dos copias de la
tabla FAT, las entradas de directorio y los ficheros propiamente dichos,
NTFS gestiona todo el sistema de archivos en base a archivos de datos.
Son los denominados Ficheros METADATA (Huy! Esto me suena de haberlo visto
antes).

   Cuando creamos una particion NTFS, se generan 11 METADATA FILES, que
se encuentran en el directorio raiz, pero son ocultos. Para verlos, basta
con ejecutar desde un shell (Ups! Perdon. Interfaz de comandos XD), el
siguiente comando:

        dir /ah <nombre de metafile>

   Los metafiles creados se muestran en la siguiente tabla:

  .------------------------------------------------------------------------.
  | Nombre   | Registro | Descripcion                                      |
  |----------|----------|--------------------------------------------------|
  | $MFT     |     0    | Master File Table. O como la FAT para NTFS.      |
  | $MFTMIRR |     1    | Copia de los 16 primeros registros de la MFT.    |
  | $LOGFILE |     2    | El fichero de logs de transacciones.             |
  | $VOLUME  |     3    | Numero de serie, fecha de creacion y dirty       |
  |          |          | flag del volumen.                                |
  | $ATTRDEF |     4    | Definicion de los atributos.                     |
  | .        |     5    | Directorio raiz del disco.                       |
  | $BITMAP  |     6    | Mapa de clusters libres.                         |
  | $BOOT    |     7    | Registro de arranque del disco.                  |
  | $BADCLUS |     8    | Lista de los clusters erroneos del disco.        |
  | $QUOTA   |     9    | Informacion acerca de las cuotas de usuario.     |
  |          |          | No se encuentra activado hasta la version NT 5.0 |
  |          |          | o mediante el uso de programas aparte.           |
  | $UPCASE  |    10    | Convierte minusculas en mayusculas :?            |
  `------------------------------------------------------------------------'

   Vamos a explicar ahora brevemente estos ficheros.

   Comenzamos por $MFT, que no es mas que una tabla FAT a lo bestia. Sirva
como ejemplo que para un disco duro de 4 GBytes ocupa mas de 22 MBytes. Pero
como es un archivo muy importante y en el que se centra NTFS, pues lo
tratamos mas en profundidad mas adelante.

   Los ficheros $LOGFILE, $VOLUME, . y $BOOT no necesitan mas aclaraciones.

   $ATTRDEF define los atributos a usar en el sistema, cosa que veremos con
mas detalle al ver el $MFT.

   El fichero $BITMAP es de lo mas original, pues cada bit se identifica con
un cluster del disco. Si el bit es 0, el cluster esta libre, si es 1, esta
ocupado. Si el cluster esta da€ado, se incluye en el fichero $BADCLUS.

   Lo que me parece que habria que reprocharle y con mucho a Micro$oft es
incluir una gestion de cuotas con $QUOTA, y no activarla salvo con programas
a€adidos. Porque tengamos en cuenta que el hecho de que se vaya a activar
en Windows NT 5.0 no es mas que un rumor. Y en teoria iba a venir activado
de serie en NT 4.0.

   Y lo del $UPCASE... Ellos sabran

   Eso si, este sistema de archivos me suena bastante... Creo que lo he
visto antes en algun sitio. Pero no puede er, puesto que segun Micro$oft
es nuevo e innovador. (Anda ya !!)
[Paseante: Te estas superando a ti mismo, no crees?.]
 


EL FICHERO $MFT
=-=-=-=-=-=-=-=

   Pese a cumplir la misma funcion que la FAT en el sistema FAT, veremos
que hay diferencias sustanciales entre la FAT y el $MFT. De primeras, el
$MFT se divide en peque€as unidades logicas denomindas registros. En estos
registros, NTFS almacena los metadatos correspondientes a los directorios
y/o ficheros y sus caracteristicas.

   Ahora viene la paranoia que se montaron en Micro$oft. El $MFT no es
un fichero aparte, como se podria considerar a la FAT. El $MFT es un
fichero que se mapea en NTFS a traves del $MFT, o lo que es lo mismo, que
se ubica a si mismo. Con esto ademas obtenemos un factor importante... que
el tama€o del $MFT puede variar en funcion de la cantidad de metadatos
existentes.

   Como todos sabemos desde los tiempos del MS DOS, una de las cosas que
garantiza un acceso mas rapido a la informacion en el disco es que esta
se encuentre de forma secuencial, que no exista fragmentacion (externa en
este caso). Si el fichero $MFT se encuentra fragmentado, NTFS debera
realizar multitud de operaciones para leer un registro, lo que ralentizara
el sistema. Para evitar que el $MFT se fragmente, al menos no demasiado,
NTFS reserva una zona rodeando al $MFT denominada ZONA MFT, que facilita
el uso de clusters contiguos a la hora de ampliar el tama€o del $MFT. Esta
zona habitualmente se corresponde con el 12% del tama€o del disco duro
a€adido despues el $MFT. Es decir, que si el $MFT ocupa los primeros
15 megas de un disco de 4 gigas, se reservan unos 4 megas mas, ocupando
asi los 19 primeros megas para el $MFT.

   NTFS reconoce los ficheros y directorios por su posicion en el $MFT del
registro que describe sus metadatas. Asi, para los METADATA FILES, se han
reservado los registros que se indicaban en la anterior tabla.

   Un registro tipico ocupa 1 KByte en NT 4.0.

   El fichero $MFTMIRR es algo asi como la segunda copia de la FAT. Pero,
cuantas veces os ha pasado que se han da€ado las dos copias de la FAT? Esto
pasa por estar una detras de la otra. Y lo mas divertido es cuando se da€a
el primer sector de la primera copia y el segundo de la segunda... o
al reves.

   Por eso, el $MFTMIRR en vez de ir a continuacion del $MFT, se coloca
justo en el medio de la particion, y solo almacena los 16 primeros
registros del $MFT, es decir, los METADATA FILES y 5 registros mas.


LOS REGISTROS
=-=-=-=-=-=-=

   Nada que ver con los registros de Windows. Al menos por ahora ;)

   Un registro del $MFT consiste de una peque€a cabecera que contiene
informacion basica sobre el registro, seguido de uno o mas atributos que
describen los datos o caracteristicas del fichero o directorio. Y como un
PNG vale mas que un documento de Word, pues aqui va un esquema:


         .-----------------------------------------------------.
         | Cabecera | Atributos de la cabecera | Espacio libre |
         `-----------------------------------------------------'

   Los datos de la cabecera incluyen numeros de secuencia para verificar
la integridad, un puntero al primer atributo en el registro y el numero
de registro $MFT del registro $MFT de base si es que este no es el primero.

   En NTFS se usan los atributos para indicar informacion acerca de los
ficheros o directorios, Existen 14 tipos de atributos en NT 4.0, que son los
que vemos a continuacion:

 .-------------------------------------------------------------------------.
 | Atributo              | Descripcion                                     |
 |-----------------------|-------------------------------------------------|
 | $VOLUME_VERSION       | Pues eso, la version del volumen.               |
 | $VOLUME_NAME          | Uhmm! Ah! El nombre del volumen.                |
 | $VOLUME_INFORMATION   | Versionde NTFS y dirty flag.                    |
 | $FILE_NAME            | No se... Tal vez el nombre del fichero o        |
 |                       | directorio.                                     |
 | $STANDARD_INFORMATION | Fecha, y atributos de oculto, sistema y lectura |
 | $SECURITY_DESCRIPTOR  | Informacion sobre la seguridad.                 |
 | $DATA                 | Los datos del fichero.                          |
 | $INDEX_ROOT           | Contenido del directorio.                       |
 | $INDEX_ALLOCATION     | Pues casi lo mismo que $INDEX_ROOT, dicen.      |
 | $BITMAP               | Mapeado del contenido del directorio.           |
 | $ATRIBUTE_LIST        | Cabeceras no residentes de atributos.           |
 | $SYMBOLIC_LINK        | No usado. Que sorpresa, verdad? ;)              |
 | $EA_INFORMATION       | Extension de atributos compatibles con OS/2     |
 | $EA                   | Extension de atributos compatibles con OS/2     |
 `-------------------------------------------------------------------------'

   Como vemos hay atributos tan curiosos como $SYMBOLIC_LINK, que como me
digan que es una novedad que no existia en otros sistemas de ficheros,
se me comen una distribucion completita de GNU/Linux. Y sigo diciendo que
este sistema de archivos me suena bastante.

   Bueno, a lo que ibamos. Los atributos se almacenan en disco en dos
componentes logicos: la cabecera y los datos.

   En la cabecera va el tipo de atributo, su nombre y sus flags, ademas de
identificar la ubicacion de los datos del atributo. En NTFS se intenta que
los datos de los atributos se almacenen tambien en los registros del $MFT.
Asi, se dice que un atributo es residente cuando tiene los datos en su
registro $MFT. Por lo general, los atributos de nombre de fichero,
informacion estandar y seguridad son siempre residentes.

   Cuando los atributos no entran en el registro $MFT correspondiente, la
cabecera de atributos incluye informacion que localiza los datos en el
disco. Esta funcion de mapeo de informacion es conocida como run-information.

   El run-information posee a su vez una cabecera que indica que clusters
de los datos son usados por el run-information. Esto se debe a que existen
atributos con datos muy grandes que deben ser repartidos en varios registros
$MFT.

   Cada parte del run-information cubre diferentes partes de un fichero.
Una entrada del run contiene un VCN (Vitual Cluster Number, numero de cluster
virtual). El VCN es un desplazamiento relativo desde los datos de atributo.
A esto le sigue un LCN (Logical Cluster Number, numero de cluster logico),
que indica la posicion en el disco donde residen los datos, y el numero de
clusters contiguos en esa posicion.

   Si hay muchos atributos para un fichero, pues nada mas simple que
incluirlos en otro registro y apuntar a este ultimo desde el primero. Y
esto es lo que hace NTFS.

   Veamos ahora un ejemplo con un fichero llamado SET_015.TXT ;)

   Primero el dibujo de turno:

            .----------.            .--------.
            |          |            |        |
 .----------'----------V------------'--------V------------------------------.
 | Cab. | Nombre | SET_015.TXT | Std Info | fecha... | Att List |   Datos   |
 `----------------------------------------------------.---------.-----------|
              .---------------------------------------'.--------'           |
              |                                       | VCN 0, LCN 128, 2   |
              |                                       | VCN 15, LCN 700, 4  |
              |                                       | .                   |
              |                                       | .                   |
              |                                       `---------------------'
              |
 .------------V-------------------------------------------------------------.
 | Cab. |  Datos   | Espacio libre                                          |
 `------.----------.--------------------------------------------------------'
   .----'          `------.
   | .                    |
   | .                    |
   | VCN 255, LCN 828, 6  |
   | VCN 276, LCN 443, 7  |
   `----------------------'

   En el ejemplo, vemos que SET_015 es un fichero muy grande y ademas esta
fragmentado. Aqui hemos mostrado simplemente el uso de dos registros $MFT
para indexar el fichero. Ademas, hemos obviado la informacion de seguridad,
simplificando asi el ejemplo, aunque mas de uno querriais haberla visto,
a que si?

   Asi, por ejemplo, tenemos que los datos del fichero no son residentes,
como es habitual. La primera entrada del run-information nos indica que
el fichero comienza con dos clusters seguidos en el cluster 128.


DIRECTORIOS
=-=-=-=-=-=

   Un directorio para NTFS no es mas que un fichero con el atributo de
indice. El directorio contiene el nombre de cada fichero y una copia
de su informacion estandar, concretamente de la fecha de creacion o ultima
modificacion.

   Si los datos de un directorio entran en un registro $MFT, el atributo
$INDEX_ROOT describe la posicion de las entradas en el registro. Al crecer
el directorio, es probable sobrepasar el limite de tama€o del registro
$MFT, para lo que se determinan buffers en los que se almacenan las
entradas adicionales. Aqui el $INDEX_ALLOCATION indica cual es la posicion
de este buffer, que en NT 4.0 tene un tama€o de 4 KBytes.

   NTFS ordena el directorio dentro del $INDEX_ROOT y el $INDEX_ALLOCATION
para hacer lo mas eficiente posible las busquedas dentro de los directorios.
El orden se establece de forma que 'a' es menor que 's'. Veamos ahora un
ejemplo grafico de una entrada de directorio:

         .------.
         |      |
    -----'------V-------------------------------------------------------
     | Index |  hnt.doc    set_015.txt   |      Index        |
     | Root  |        `--->        `---> |    Allocation     |
    ------------.--A-------.--A----------.-------------------.-----------
         .------'  |  .----'  |          | VCN 0, LCN 777, 2 |
         |   .-----'  |       |          `---------.---------'
         |   |        |       |                    |
         |   |        |       |                    |
         |   |        | .-----'                    |
    .----V---'--------V-`-.                        |
    | firma.bat   set.pgp | <----------------------'
    `---------------------'


        Listado:    firma.bat -> hnt.doc -> set.pgp -> set_015.txt


NOVEDADES PARA NT 5.0
=-=-=-=-=-=-=-=-=-=-=

   Pues segun se cuenta por ahi, la version de NTFS que acompa€ara al NT 5.0
llevara por fin activado el fichero $QUOTA, que esta incluido desde la
version 3.5 de este sistema operativo, pero que a no ser que les compraras
el programa aparte no lo podias usar.

   Ademas, pues dicen que quieren meterle criptigrafia dentro del sistema
de ficheros, lo que llaman EFS o Encryption File System. El proceso, por
lo que hemos tenido oportunidad de ver, sera usar la ID del usuario en
conjunto con DES para manipular los datos del fichero.


CONCLUSIONES FINALES
=-=-=-=-=-=-=-=-=-=-

   NTFS no es un sistema de ficheros tan seguro como dicen. Ya se sabe,
no es tan fiero el leon como lo pintan. Lo que pasa es que el desconocimiento
generalizado de las interioridades de este sistema ha hecho que parezca mas
fiable de lo que es en realidad.

   Sigo diciendo que me suena bastante este sistema de archivos... Espera
un momento... No puede ser... Os acordais del VMS? Si, aquel maravilloso
sistema operativo de Digital, usado en los VAX, por ejemplo. No se parece
ligeramente este sistema de ficheros al de VMS? Yo diria que si...

    Ah, claro! Se me olvidaba que los dise€adores de Windows NT fueron los
creadores del VMS... Y por lo que se ve, un poco adictos a Odisea en el
Espacio. Vamos, porque todos conoceis lo de HAL-IBM, verdad? Si hombre, si.
Mira:

        H + 1 = I
        A + 1 = B
        L + 1 = M

   A ver que pasa con Windows NT:

        W - 1 = V
        N - 1 = M
        T - 1 = S

   Asi que es por eso por lo que se llama NT, y no por otras cosas que se
han oido por ahi. Estos chicos de Micro$oft... ;)
[Otras fuentes afirman que NT significa "Nice Try"]

   Bueno, pues solo una cosa mas. Recordarles a los de Micro$oft que
activen la $QUOTA en NT 5.0, y ya de paso, pues que usen ese atributo de
$SYMBOLIC_LINK, que para algo esta, y no veas lo util que puede ser. Los
que conocemos algun UNIX lo sabemos muy bien.

   Ah! Antes de que se me olvide. Este articulo esta basado en el articulo
publicado en la Windows NT Magazine acerca de las interioridades del NTFS.
Espero que os haya servido para algo ;)

Have P/hun
Falken