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

Discussion in 'WASM.WIN32' started by hddman, Oct 3, 2011.

  1. hddman

    hddman New Member

    Blog Posts:
    0
    Joined:
    Oct 3, 2011
    Messages:
    4
    Всем привет! Возможно ли пометить сектора как плохие (NTFS, FAT32) из usermode чтобы спрятать в них файл?
     
  2. rttgedt

    rttgedt Антон

    Blog Posts:
    0
    Joined:
    Oct 12, 2010
    Messages:
    85
    Думаю, через CreateFile и $BadClus. Если про нтфс. Смысл в том, чтобы открыть том как файл, и, в зависимости от ФС, в нужное место занести данные.
     
  3. amdf

    amdf New Member

    Blog Posts:
    0
    Joined:
    Feb 1, 2011
    Messages:
    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 теперь является символьной ссылкой. Получить доступ к его потокам из системы невозможно.
    Code (Text):
    1. D:\TMP>more < file.txt:hide.txt
    2. Синтаксическая ошибка в имени файла, имени папки или метке тома.
    Теперь как можно снова извлечь поток, когда он снова понадобится? Снова открываем file.txt в NTFS Stream Explorer, идём на вкладку "Ссылка", нажимаем кнопку "Удалить". Файл перестаёт быть ссылкой, становится обычным файлом, поток снова доступен по имени file.txt:hide.txt.
     
  4. Partner

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    Check disk не ругается?
     
  5. hddman

    hddman New Member

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

    amdf New Member

    Blog Posts:
    0
    Joined:
    Feb 1, 2011
    Messages:
    39
    Не должен.

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

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

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    Для мономольного доступа диск надо размонтировать. Очевидно, что системный диск размонтировать нельзя.
     
  8. hddman

    hddman New Member

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

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

    amdf New Member

    Blog Posts:
    0
    Joined:
    Feb 1, 2011
    Messages:
    39