Всем привет! Возможно ли пометить сектора как плохие (NTFS, FAT32) из usermode чтобы спрятать в них файл?
Думаю, через CreateFile и $BadClus. Если про нтфс. Смысл в том, чтобы открыть том как файл, и, в зависимости от ФС, в нужное место занести данные.
Так прятать файлы это слишком сложно. Требуется полный доступ к диску. Проще на 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): D:\TMP>more < file.txt:hide.txt Синтаксическая ошибка в имени файла, имени папки или метке тома. Теперь как можно снова извлечь поток, когда он снова понадобится? Снова открываем file.txt в NTFS Stream Explorer, идём на вкладку "Ссылка", нажимаем кнопку "Удалить". Файл перестаёт быть ссылкой, становится обычным файлом, поток снова доступен по имени file.txt:hide.txt.
rttget, amdf, спасибо за информацию. А можно ли получить монопольный доступ к системному диску? И если использовать альтернативные потоки, то можно ли переместить (не копируя, а то уходит много времени, если файлов много) файл в поток?
Не должен. Нет, так не получится. Другой вариант. Можно к файлу с содержимым добавить точку повторной обработки (не ссылку, а своего произвольного типа, NTFS Stream Explorer позволяет такие создавать). Тогда файл будет недоступен для открытия, переименования, удаления, до тех пор, пока точку повторной обработки из него не удалить. На все операции будет "Ошибка 0x80070780. Доступ к этому файлу из системы отсутствует".
Для мономольного доступа диск надо размонтировать. Очевидно, что системный диск размонтировать нельзя.
amdf, хороший способ. Правда файлы при этом остаются видны. А может запрятать файл куда-нибудь в матаданные, начинающиеся с $? Или создать скрытый раздел? Partner, похоже единственный способ получить монопольный режим для системного диска - это BootExecute?