Как определить не через API имеет ли файл ADS,то есть где хранится в структуре NTFS для файла список его ADS? Спасибо)
http://hex.pp.ua/NtFsControlFile.php На диске это лежит в виде структуры ATTRIBUTE, в которой поле AttributeType равно значению AttributeData = 0x80. Безымянный атрибут - это само тело файла, а именованные, видимо, прочие потоки NTFS, если они есть у файла.
amdf Спасибо,очень полезная информация! Но...Ведь там используется стнадартное обращение к файловой системе через FSCTL_* код,то есть,если имеется перехват и фильтруется FSCTL_*,то я не получу достоверной информации... Здесь,как я понимаю,нужно вручную парсить структру NTFS для файла и определять наличие ADS...только вот как это технически сделать?
AlexCasual А в чем проблема? Надо открыть устройство '\Device\PhysicalDriveX' (в Vista+ потребуется драйвер) и руками начать разбирать. Из MBR взять смещение раздела и размер раздела, затем найти MFT и пройтись по нему, заходя в каталоги. Задача непростая, т.к. требует хорошего понимания структур NTFS. В принципе, информация по ней есть, можно посмотреть, например, драйвер ntfs-3g для Linux, почитать http://ntfs.com Ну и в разных книгах типа "Криминалистический анализ файловых систем", Rootkit arsenal тоже описывается.
Драйвер не потребуется, даже в Win7 можно просто сделать вот так: C:\Windows\system32>type C:\$Volume ыRРNTFS ... по этому имени доступно содержимое тома на чтение.
Проблем с написание того же драйвера и получением доступа к диску нет...Есть проблемы с разбором самой структуры NTFS, она и так весьма слабо документирована,чтобы её полностью разобрать...Конечно,это реализуемо,но хотелось бы найти оптимальный путь именно для получения ADS...