2010-02-05 1 views
1

Я хотел бы знать, как программно скрыть файл, но при этом файл или папку по-прежнему скрыты. Показывать скрытые файлы и папки, включенные в опциях Tools-> Folder Проводника.Как скрыть с помощью C C++ с показом скрытых файлов и папок

Надеюсь, я никого не смущаю, и если бы я мог, пожалуйста, просто спросите.

+2

Сохранить только копию файла на съемный носитель (USB диск, дискеты и т.д.) и заблокировать средства массовой информации в сейфе. Для дополнительной безопасности, похороните сейф на дне глубокого озера. Теперь вы можете настроить параметры скрытых файлов, которые вы хотите, но он не появится. – bta

+0

Поскольку вы ссылаетесь на «Tools-> Folder options of Explorer», я предполагаю, что это для Microsoft Windows, и я соответствующим образом пометил его. Такие вещи очень зависят от платформы. Поскольку это большое отверстие безопасности, если оно существует, оно скорее всего будет специфичным только для определенных версий, и любое решение, которое вы найдете, скорее всего, будет уничтожено более поздним патчем. –

ответ

3

Вы хотите функцию SetFileAttributes доступной по # include'ing Windows.h: http://msdn.microsoft.com/en-us/library/aa365535%28VS.85%29.aspx

В коде:

BOOL result = SetFileAttributes(L"c:\path\to\file", FILE_ATTRIBUTE_HIDDEN); 

Как для сохранения файла, скрытого от "скрытых файлов шоу" вариант, это гораздо труднее, и я не могу придумать законную причину этого - единственные программы, которые делают, - руткиты для гнусных целей.

+0

Насколько я могу судить, только устанавливает файл как «скрытый», но если вы включили «Показать скрытые файлы и папки», файл все равно будет отображаться в Проводнике. – Brad

+0

@Brad Да, Извините, я неправильно понял вопрос. – 2010-02-05 21:51:34

3

Я уверен, что это невозможно, так как это будет уязвимость безопасности (программы могут помещать неизвестные файлы на ваш жесткий диск, которые вы не могли увидеть или удалить).

Даже системные файлы Windows видны.

2

Используйте драйвер фильтра файловой системы. Но поскольку вы должны спросить - просто не делайте этого. Не пытаясь быть грубым здесь, просто это очень трудная задача.

4

Нет API-интерфейса пользователя, чтобы файлы были скрыты от «показывать скрытые файлы», и это хорошо.

Единственный способ сделать это - запустить код в ядре. rootkit, что Sony «случайно», установленная на пользовательских машинах пару лет назад, когда они пытались помешать воспроизведению компакт-дисков, могла это сделать. Но нет законных использования для скрытия файлов от системных администраторов и опытных пользователей.

0

Как уже было сказано ранее, нет простого способа полностью «скрыть» такой файл.

Если вы можете принять не по-настоящему скрывать файл, а просто запутывать его, вы всегда можете вставлять его в фиктивный файл. Возьмите файл, который хотите скрыть, создайте файл контейнера, чтобы его удержать, и назовите этот фиктивный файл случайным именем. Например, вы можете поместить имя файла реального файла, начиная со смещения 512 фиктивного файла, и поместить содержимое файла, начиная со смещения 1024, вставляя 64 байта случайных данных каждые 1 КБ. Положите конец пустым пространством до ближайшего кратного 4KB, заполните пустое пространство случайными байтами и создайте случайную последовательность символов для использования для имени файла. Теперь вы можете «спрятать» файл, пока он все еще отображается в файловой системе.

Однако это просто «security by obscurity» и может быть побежден умным злоумышленником с шестнадцатеричным редактором.

Если вы просто пытаетесь убедиться, что файл не отображается в браузере случайной файловой системы, вы всегда можете сжать файл, зашифровать его и рандомизировать имя файла. Если вам нужно иметь доступ к/выполнить файл как есть, пока он «скрыт», значит, вы, вероятно, не повезло.

0

Благодаря всем ответам.

Мои причины, по которым вы хотите знать, следующие: меня укрывают программы скрытности, такие как клавиатурные шпионы, как они это делают. Поэтому я хотел бы написать приложение, которое может обнаружить эти скрытые процессы.Я знаю, что существуют другие методы, используемые шпионскими программами, чтобы спрятаться, так что сейчас это только отправная точка.

Надеюсь, что ответит на ваши вопросы.

Виктор

+0

Я понимаю, что обычный способ обнаружения руткита - это делать системные вещи более одного раза, на разных уровнях детализации и видеть, совпадают ли они. –