Пометить сектора как битые.

Тема в разделе "WASM.WIN32", создана пользователем hddman, 3 окт 2011.

  1. hddman

    hddman New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2011
    Сообщения:
    4
    Всем привет! Возможно ли пометить сектора как плохие (NTFS, FAT32) из usermode чтобы спрятать в них файл?
     
  2. rttgedt

    rttgedt Антон

    Публикаций:
    0
    Регистрация:
    12 окт 2010
    Сообщения:
    85
    Думаю, через CreateFile и $BadClus. Если про нтфс. Смысл в том, чтобы открыть том как файл, и, в зависимости от ФС, в нужное место занести данные.
     
  3. amdf

    amdf New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2011
    Сообщения:
    39
    Так прятать файлы это слишком сложно. Требуется полный доступ к диску.

    Проще на NTFS сделать так:
    Допустим, прячем файл hide.txt
    1) создаём пустой файл file.txt
    2) открываем его в NTFS Stream Explorer 2.0
    3) прикрепляем к нему hide.txt как файловый поток, получаем связку file.txt:hide.txt

    Теперь прячем поток:
    4) В NTFS Stream Explorer выбираем Добавить -> Точку повторной обработки (ссылку)
    5) Выбираем параметры символьной ссылки, чтобы она куда-нибудь указывала, на любой файл. Сохраняем.

    Проверяем:
    Файл hide.txt теперь является символьной ссылкой. Получить доступ к его потокам из системы невозможно.
    Код (Text):
    1. D:\TMP>more < file.txt:hide.txt
    2. Синтаксическая ошибка в имени файла, имени папки или метке тома.
    Теперь как можно снова извлечь поток, когда он снова понадобится? Снова открываем file.txt в NTFS Stream Explorer, идём на вкладку "Ссылка", нажимаем кнопку "Удалить". Файл перестаёт быть ссылкой, становится обычным файлом, поток снова доступен по имени file.txt:hide.txt.
     
  4. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Check disk не ругается?
     
  5. hddman

    hddman New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2011
    Сообщения:
    4
    rttget, amdf, спасибо за информацию. А можно ли получить монопольный доступ к системному диску? И если использовать альтернативные потоки, то можно ли переместить (не копируя, а то уходит много времени, если файлов много) файл в поток?
     
  6. amdf

    amdf New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2011
    Сообщения:
    39
    Не должен.

    Нет, так не получится.

    Другой вариант. Можно к файлу с содержимым добавить точку повторной обработки (не ссылку, а своего произвольного типа, NTFS Stream Explorer позволяет такие создавать). Тогда файл будет недоступен для открытия, переименования, удаления, до тех пор, пока точку повторной обработки из него не удалить. На все операции будет "Ошибка 0x80070780. Доступ к этому файлу из системы отсутствует".
     
  7. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Для мономольного доступа диск надо размонтировать. Очевидно, что системный диск размонтировать нельзя.
     
  8. hddman

    hddman New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2011
    Сообщения:
    4
    amdf, хороший способ. Правда файлы при этом остаются видны. А может запрятать файл куда-нибудь в матаданные, начинающиеся с $? Или создать скрытый раздел? :)

    Partner, похоже единственный способ получить монопольный режим для системного диска - это BootExecute?
     
  9. amdf

    amdf New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2011
    Сообщения:
    39