hex.pp.ua

Разработка следующей версии NTFS Stream Explorer

Разработка следующей версии программы для работы с потоками NTFS




Страница программы NTFS Stream Explorer

На этой странице описывался процесс разработки следующей версии NTFS Stream Explorer. Разработка бета-версии была завершена 21.09.2011.

Программа имеет английский и русский интерфейс.

История версий

  • Релиз 2.00.12.56

    — Выпущен релиз;
    — Исправлены мелкие недочёты;


  • Бета 11

    — Изменения в интерфейсе;
    — Drag'n'drop для открытия файла и для добавления потоков NTFS;
    — Из вкладки атрибутов можно сжать и зашифровать файл;
    — Возможность сжатия отдельного потока NTFS. Показ атрибута сжатия для каждого потока;
    — Добавлены проверки открытия файла на файловой системе, отличной от NTFS. Включение и отключение соответствующих частей интерфейса (например EA доступны также и на FAT16).
    — Возможность задать короткое имя файла (формат 8.3);


  • Бета 10

    — иконка приведена в норму
    — нажатие на чекбоксы атрибутов меняют атрибут. В том числе задание атрибута "разреженный" открывает вкладку Sparse и позволяет смотреть и редактировать диапазоны разреженности файла. Следует иметь в виду, что имеет смысл задавать диапазон разреженности не менее 64 Кб, иначе место не освободится. При выделении места напротив, если вы выделили хоть 1 байт внутри разреженного блока, то для всего блока выделяется место. Потом будет добавлена проверка на корректность диапазонов, т.е. программа будет сама говорить, к чему приведёт та или иная операция с разреженностью.
    — изменяемые атрибуты подсвечиваются чертой при наведении указателя мыши
    — на вкладке MFT-атрибутов корректно отображается сжатый размер разреженных файлов.
    — дизайн вкладок альтернативных потоков и расширенных атрибутов (EA) претерпел изменения
    — добавлена кнопка "запустить" для альтернативных потоков. Пока не следует использовать, ибо используется ShellExecute, а нужно переписать на CreateProcess. Пока запускает только в том случае, если у в конце имени .exe (функция думает, что это расширение)
    — добавлены иконки к некоторым кнопкам


  • Бета 9

    — Добавлен русский интерфейс
    — Добавлено окно настроек с возможностью выбора языка интерфейса и возможностью выбрать, сохранять ли имя последнего файла в адресной строке
    — Сделана иконка приложения (надо перерисовать, края не совсем гладкие)
    — Добавлена форма создания символьной ссылки, точки монтирования или junction. Создавать символьную ссылку можно даже в Windows XP, хотя они там и не поддерживаются. Созданная в XP ссылка должна быть доступна потом из Vista/7.
    — Теперь выводится сообщение если попытаться создать EA при наличии Reparse и наоборот
    — Убраны кнопки «Копировать» и заодно убран баг со вставкой в поля GUID
    — Выделение памяти GlobalAlloc заменено на HeapAlloc


  • Бета 8

    — Больше информации о нерезидентных атрибутах
    — Отображается информация о точках повторной обработки. Также можно их удалять и экспортировать двоичные данные. Позже будут расширены возможности по их редактированию. Можно создать новую точку повторной обработки. Пока не проверяется факт наличия EA у файла. При наличии EA точку создать нельзя, это ограничение системы. Программа выдаст сообщение об ошибке, но, по идее, надо заранее отключать возможность создания точки в такой ситуации.
    — Исправлены мелкие недочёты.
    — Убраны рамки панелей.


  • Бета 7

    — Добавлена вкладка EA (расширенных атрибутов). Можно смотреть список, создавать новые (из файла, или генерировать из символов 0x00 нужного размера). Можно просматривать шестнадцатиричный дамп выбранного EA. Можно удалять. Можно переименовывать (в самом списке два клика по названию, отдельной кнопки нет. При создании EA можно выбрать, какой флаг он будет иметь.
    — На вкладке Alternate data можно производить операции с потоками, такие же как и на вкладке EA. Пока там нет шестнадцатиричного просмотра.
    — Обе вкладки не отображаются, если у файла нет потоков и EA. Но туда можно попасть из первой вкладки ("Add").
    — Пока при выполнении операций почти не проверяется успешно или неуспешно они выполнены. Возможны разные глюки.

  • Бета 6

    — Добавлена напоминание на серой панели о том, что надо открыть файл через адресную строку сверху.
    — Изменено поведение адресной строки, связанное с автоподстановкой имён файлов.
    — Содержимое вкладок перемешано по новому принципу. Имена файла и его идентификаторы теперь на первой вкладке, атрибуты и стандартная информация на второй.
    — Вкладка атрибутов MFT теперь отображает список в виде таблицы из четырёх колонок. Значения флагов атрибутов можно посмотреть под таблицей, предварительно выбрав в таблице атрибут.
    — Добавлена вкладка alternate data. Пока там лишь отображение списка потоков NTFS, если они есть. Если их нет, вкладка не показывается. Один и тот же альтернативный поток будет отображаться и на вкладке атрибутов MFT, и на вкладке списка потоков. На вкладке атрибутов MFT будет указано полное имя, например :NAME:$DATA и размер атрибута. На вкладке потоков будет указано имя в сокращённом формате (NAME) и размер данных потока. Размер атрибута MFT и размер самих данных это разные вещи.
    — На других вкладках отображается надпись not implemented.
    — Заблокировано изменение размера окна.
    — Те чекбоксы, которые не должны изменяться по клику больше не изменяются.

  • Бета 5

    В этой версии вроде бы устранил падения при просмотре списка атрибутов NTFS, а также падение при запуске. Добавил просмотр содержимого Object Id в виде шестнадцатиричного дампа. Этот же механизм будет потом использован для шестнадцатиричного просмотра других атрибутов (в 1.07 просмотра вообще не было, был только экспорт). Окно теперь меняет размер при смене вкладки, чтобы интерфейс отображался оптимально. А вот проверку на минимальный размер окна пока убрал, позже добавлю обратно.
  • Бета 4

    Добавил функции показа информации и изменения объектных идентификаторов (Object Id), так как библиотека objidlib уже готова (она довольно простая). Не работает только выгрузка идентификатора во внешний файл и изменение расширенной части путём загрузки из файла. Однако, менять расширенную часть можно вручную. Также можно сгенерировать Object Id заново с помощью системы, можно также удалить. После удаления, правда, создать заново пока нельзя (ещё не добавил в интерфейс соответствующую кнопку). Но это можно сделать в NTFS Stream Explorer 1.07. Пока не знаю как менять непосредственно сам object id (напрямую, без генерации его системой). Не разобрался ещё.
    Падает на Windows XP. Пока даже не смотрел, почему. Разберусь.
  • Бета 3

    Теперь атрибуты правильно разбираются. В прошлой версии я вычислял смещения неправильно. Ещё сделал отображение Object Id из соответствующего атрибута. Непосредственно в файловой записи хранятся только 16 байт. Это ключ к остальным 48 байтам, которые хранятся в специальном файле $ObjId тома NTFS. Замеченные баги: не все поля очищаются после отображения информации о предыдущем файле. Потом исправлю.
  • Бета 2

    Пока только английский интерфейс. Эта версия умеет только отображать некоторую информацию о файле. Информация на вкладке Info берётся из функций FileID API. Там отображается имя файла, размер, атрибуты, количество ссылок, идентификатор файла (из MFT), серийный номер тома и некоторые другие данные. Информация на вкладке Info from disk берётся из NTFS-атрибутов через вызов DeviceIoControl. Там отображается список NTFS-атрибутов, из которых состоит файл, некоторые свойства этих атрибутов (имя, резидентный — не резидентный, индексирован — не индексирован, сжат — не сжат, номер атрибута, его длина). На этой же вкладке отображается информация, взятая из атрибутов StandardInformation и FileName. В каждом из этих атрибутов хранятся временны е метки. У файла может быть несколько файловых имён, отображается информация о каждом из них. Все остальные вкладки пока пусты. Программа требует полномочий администратора для запуска.

По теме файловых потоков также есть следующее:


При копировании материалов хорошим тоном будет указание авторства и ссылка на сайт. По поводу рекламы обращайтесь на почту [email protected]