Сидел вот намедни и делать было нечего. Скрывал папку(порно! а вы откуда догодались ). Да выделил папку Windows и попытался её скрыть, но успех не состоялся. Винда послала меня, типа сис.файлы не скрываю. Мне вот просто интересно можно как нить програмно скрыть сис.файлы от глаз пользователя. В голову лезит только один способ, это написать свои функции FindFirstFile и FindNextFile и вслучае совпадения имен, просто не высветить его в проводнике. Думаю на днях попробую свою мысль, У вас будут какие нить предложения, или другие способы, по решения моего вопроса.
Чтобы скрыть файл в проводнике, достаточно выставить атрибуты Hidden, System и Readonly: attrib +S +H +R file.txt
мда... а флажок "Show hidden and system files" не рулит уже? мысль правильная, в ринг3 так и делают +)
ring4 в проводнике скрывается элементарно, он через реестр поддерживает список чего не нужно отображать. точную ветку не помню, этим вообще-то твикеры занимаются, но это не скороет папку от far'а и прочих коммандеров. на NTFS еще можно убрать папку из индексов (любым диск редактором типа NtExplorer), тогда она не будет отображаться _нигде_, однако, CreateFile с путем+именем файла продолжит работать. т.е. если мы убираем папку WINNT из индексов, dir C: не покажет ее, но вот dir C:\WINNT отработает нормально правда, при первом же запуске chkdsk'а он ее вылечит. ну тут правда можно его обломать, только тогда придется перестраивать кучу структр данных на диске, а это утомительно и небезопасно. зато такое сокрытие не требует присуствия резидентов в памяти, абсолютно безглючно и ничем (кроме чек-диска) не обнаруживатся... так же на NTFS можно создавать виртуальные папки (термин взят из мира web т.е. допустим мы имеем папку C:\X\Y\, так вот. папка Y существует, а X - нет. точнее она существует но у нее удален аплинк на корень C:\ и потому добраться до Y можно только зная полный путь. чек-диск на это внимание уже не обращает перейти в папку C:\X так же нельзя, dir C:\X скажет, что X нету, таким образом Y - надежно скрыта от глаз пользователя и антивируса. в ней можно деражать что угодно... правда, антивирусы сканируют запущенные процессы и потому положить в нее резидента не получится, как не получится положить троянский плугин к IE, поскольку нам придется прописывать полный путь, а его-то авери и захавают... вот такая она NTFS )
это каак?? ведь чтобы найти номер записи в mft, нужно сначала пропарсить соответсвующий элемент каталога?
Nouzui в NTFS нет каталогов. в ней есть только индексы. и как в любой базе данных индексы являются вспомогательными структурами данных, которые используются для быстрого поиска, причем в NTFS можно индексировать не только директории, но и другие атриубты (правда, это не реализовано в драйвере). mft содержит все необходимое. в том числе и каталоги, которые являются обычными файлами. ну... почти обычными... индексы _дублируют_ их содержимое. при открытии файла поиск идет только по mft, поскольку как известно поиск в линейном массиве намного быстрее, чем обход кучи деревьев, разбросанных по диску тем более, не нужно забывать, что у файла может быть несколько имен, но индексы допускают лишь включение одного. т.е. файл, имеющий несколько атрибутов имен (типа ms-dos имя, posix имя, ntfs-имя) крути не крути, а нужно искать в mft. индексы используются командой dir, но CreateFIle, CreateProcess идут через mfs, поэтому можно скрыть папку винды, не нарушив ее работоспособность. во всяком случае на w2k я это проверял неоднократно, особенно на zip-дискетах. была необходимость пронести на них исполняемые файлы, перед этим отдав их на проверку администратору. ну он посмотел, - а там чисто одни нормальные файлы, никакие не исполняемые ну и... кстати, с зипом намного более безопасно эксперинтировать, чем с hdd, и он быстрее чем виртуальный диск под VMWare...
эх.. мало че понял, надо курить ntfs а если индексация отключена? (или я вообще ничего не понял, и вопрос не имеет смысла?)
индексация файлов в винде никакого отношения к индексам ntfs не имеет. отключить индексацию ntfs штатными средствами нельзя. а вот включить индексацию чего-то еще в XP уже можно. ну, например, времени создания файла/последней модификации и потом по ним производить поиск, который будет выполняться намного быстрее, только для этого придется обращаться непосредственно к драйверу NTFS, штаные findfirst/findnext не прокатят... у меня есть подробное описание NTFS на русском (свое собственное). нужно?
kaspersky Хе. Раньше же у тебя было содержание сайта. Не будешь разбивать всё по подпапкам и давать внятные названия?
n0name вот я курю сейчас логи и вижу, что большинство файлов скачиваются с Referer: _форум_X_, где мыщъх дал ссылку так что описания файлов есть. на форумах а если серьезно и без шуток, то у меня просто лапы до этого недоходят, тем более, что такой сайт уже давно есть - http://www.InsidePro.com там выложены практически все статьи, что есть на nezumi, только в достойном виде
kaspersky Так-с, скачал твою статью. Проглядел, но так и нашёл многого, что хотелось бы увидеть. Например описание аттрибутов $INDEX_ROOT и $INDEX_ALLOCATION, которые AFAIR как раз и юзаются при парсинге диры.
n0name угу. линх-нтфс-прожект рулит, там все хорошо описано. я индексы не затрагивал, поскольку в контексте восстановления данных (о которых была статья) они не нужны... еще скачай NtExplorer от runtime software, там очень удобная навигация по ntfs, упрощает экспериментирование