NTFS Alternate Data Stream(ADS)
??1993年微軟推出了基于流行的NT平臺的Windows NT作業系統,之后,NTFS作為WIndows開發基于NT的作業系統時的首選檔案系統,逐步取代被應用于舊版Windows作業系統(比如Windows 9x)的檔案系統,即FAT(File Access Table),
??NTFS中的備用資料流(Alternate Data Stream,ADS)允許將一些元資料嵌入檔案或是目錄,而不需要修改其原始功能或內容,
??在NTFS中,主資料流指的是檔案或目錄的標準內容,通常對用戶可見,而備用資料流(ADS)則隱藏,如果要查看備用資料流,可以使用dir命令的/R選項,或是Windows提供的streams.exe工具,沒有可用的API,
??ADS沒有大小限制且多個資料流可以和一個正常檔案關聯,ADS的內容也不僅限于text文本資料,基本上只要是二進制格式檔案都可以被作為ADS備用流嵌入,
使用備用資料流(ADS)
??查閱多篇文章,大致了解了下ADS的命名方式,以及使用ADS的一些方法,
??所有的檔案在NTFS中至少包含一個主資料流,也就是用戶可見的檔案或是目錄,一個檔案在NTFS中真正的檔案名稱格式:
<檔案名>:<流名>:<流種類>
- 檔案ADS
??默認的資料流沒有名字,一個檔案test.txt在NTFS中的全名為test.txt::$DATA,可以在命令列中執行如下命令查看test.txt檔案內容:
notepad test.txt::$DATA
??也可以用一下命令創建test.txt:
echo "test.txt file content." test.txt::$DATA
??對于已經存在的檔案test_1.txt創建備用資料流:
echo "test_1.txt ads data stream" > test_1.txt:test_1.txt_ADS 或
echo "test_1.txt ads data stream" > test_1.txt:test_1.txt_ADS:$DATA
??查看ADS資料:
notepad test_1.txt:test_1.txt_ADS 或
notepad test_1.txt:test_1.txt_ADS:$DATA
??同樣可以使用創建備用資料流的方式順帶新創建一個檔案,但是輸出的資料被存放于ADS中,新檔案則為空:
echo "test_2.txt ads data stream" > test_2.txt:test_2.txt_ADS 或
echo "test_2.txt ads data stream" > test_2.txt:test_2.txt_ADS:$DATA
??資料被存盤于test_2.txt:test_2.txt_ADS:$DATA備用流中,而被創建的test_2.txt則為空,
- 檔案夾ADS
??檔案夾沒有默認的資料流(也就是沒有主資料流),但是有一個默認的目錄流為$INDEX_ALLOCATION,默認的流名為$I30,比如檔案夾testDir全名為testDir:$I30:$INDEX_ALLOCATION,可以使用以下特殊方式進入testDir:
cd testDir:$I30:$INDEX_ALLOCATION 或
cd testDir::$INDEX_ALLOCATION(忽略了流名)
??也可以使用以下命令創建目錄testDir
md "testDir::$INDEX_ALLOCATION" 或
md "testDir:$I30:$INDEX_ALLOCATION"
??經過測驗可以為已存在的目錄創建ADS,比如testDir:
echo "i am testDir:testDir_ADS:$DATA data stream" > testDir:testDir_ADS 或
echo "i am testDir:testDir_ADS:$DATA data stream" > testDir:testDir_ADS:$DATA
??但是沒法正常打開,使用winhex查看硬碟倒是可以確定資料流的存在,
??洗掉備用流所洗掉的檔案或檔案夾時,相應的備用流也會被洗掉,
參考
??NTFS Alternate Data Stream (ADS)
??NTFS格式下的Alternate Data Streams
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/71750.html
標籤:其他
上一篇:資訊收集小技巧
下一篇:wifi滲透
