Aliran data alternatif

Aliran data alternatif atau dalam bahasa Inggris alternate data stream atau fork adalah sebuah fitur dalam sistem berkas NTFS yang dapat menyebabkan sebuah berkas memiliki beberapa data sekaligus (atau dalam istilah NTFS disebut sebagai stream, berarti aliran). Normalnya, sebuah berkas hanya memiliki satu data dalam atribut $DATA, yang tidak bernama. Dengan manambahkan nama kepadanya, maka berkas tersebut dapat memiliki beberapa aliran baru, yang juga dimasukkan ke dalam atribut $DATA secara terpisah.

 Cara kerja 
Aliran memiliki format sebagai berikut:

 <nama_berkas>.<ekstensi>:<nama_berkas>.<ekstensi>

Aliran dapat dibuat menggunakan API NtCreateFile(), sebuah cara yang sama dengan membuat sebuah berkas biasa dalam Windows NT.

Aliran juga dapat dibuat dengan mengimpor atribut $DATA dari berkas lainnya menggunakan I/O Redirection (atau > <), dari antarmuka baris perintah. Contohnya adalah:

 C:\>echo Ini adalah isi dari atribut $DATA dari berkas test > test
 C:\>type C:\Windows\Notepad.exe > test:notepad.exe

Jika dibuka oleh program, yang akan dibuka adalah atribut $Data utama (yang tidak bernama), sehingga aliran $DATA bernama notepad.exe dalam berkas test tersebut tidak akan terbaca (tersembunyi). Ini juga berlaku untuk semua aliran yang ada di dalam berkas tersebut dan berkas lainnya.

 C:\>type test
 Ini adalah isi dari atribut $DATA dari berkas test

Selain itu, beberapa program juga tidak dapat langsung mengenali adanya aliran. Contohnya, perintah "type" di atas tidak akan berguna untuk menampilkan apa isi dari atribut $DATA sebuah aliran; Perintah "dir" juga sama: ia tidak akan menampilkan daya tampung berapa banyak bita yang telah diambil oleh aliran tambahan dalam sebuah berkas, mengingat ia hanya menampilkan daya tampung berapa banyak bita yang diambil oleh aliran utama. Salah satu cara untuk melihat apa yang ada di dalam aliran adalah menggunakan program notepad maupun dengan program yang telah mengenali adanya aliran.

 C:\>more < test:notepad.exe
 [isi dari aliran notepad.exe dalam berkas test akan ditampilkan]

Sehingga, aliran data alternatif juga dapat digunakan untuk menyimpan data secara tersembunyi: tidak terlihat sama sekali oleh program konvensional yang telah ada. Untuk menjalankan program yang disimpan di dalam aliran, dapat digunakan sintaksis berikut:

 C:\>start .\<nama_berkas>.<ekstensi>:<nama_stream>.<ekstensi>

jmpl|ka|100px|Beberapa jenis berkas yang memiliki ringkasan lembaran (sheet summary) atau tidak
Selain itu, aliran juga digunakan oleh Windows Explorer untuk menampung beberapa informasi yang berkaitan dengan berkas yang bersangkutan (metadata berkas tersebut), yang dapat dimasukkan melalui properti berkas tersebut. Beberapa berkas, seperti .HTML/.HTM (kode HTML), .XML/.XSD (kode XML), .LNK/.PIF (shortcut), tidak dapat memiliki properti seperti dalam beberapa jenis berkas; dokumen Microsoft Office juga demikian, mengingat informasi metadata tersebut disimpan di dalam berkas yang bersangkutan.

jmpl|kiri|200px|Sebuah berkas yang memiliki aliran yang hendak dipindahkan ke sebuah sistem berkas selain NTFS
Jika berkas dengan aliran dipindahkan ke sebuah sistem berkas lainnya (selain NTFS), seperti halnya FAT32 atau FAT16, maka aliran yang dikandungnya akan hilang.

 Penyalahgunaan 
Fitur aliran data alternatif memang berguna, tapi ada juga beberapa masalah yang ditimbulkan oleh orang yang iseng. Beberapa virus telah menggunakan cara ini untuk menyembunyikan dirinya dari program antivirus, sehingga sukar dideteksi jika virus tersebut "belum" bertindak.

Kategori:Windows NT
Kategori:Sistem berkas