Обход ограничений FAT32/NTFS A.M.D.F. (amdf@mera.net.ru) Xakep, номер #062, стр. 062-080-4 Другое возможное направление – использование описанных способов в западлостроении. Ничто не мешает нам создать на компе ламера некоторое количество файлов размером по 4 Гб каждый (если у него FAT32) или один большой файл любого размера (если NTFS) и переименовать их, ну, например, в имена DOS-устройств. Или можно сделать их невидимыми. В любом случае эти файлы удаляются неочевидным способом, и поэтому большинству людей, скорее всего, придется форматировать винт и переустанавливать систему (если винт содержит только один раздел). Кстати, scandisk и другие подобные утилиты почему-то не видят ничего странного в файлах с такими названиями. Наверное, каждый программист хоть раз в жизни пробовал писать вирус или троян. Естественно, чтобы вирус был настоящим вирусом, нужно намертво закрепить его в системе, а также принять меры к тому, чтобы его как можно дольше не обнаружил антивирус. Я попытался использовать некорректные имена файлов в этих целях. Я создал на винте новую папку и поместил в него файл, содержащий тестовый вирус EICAR. Этот вирус не приносит никакого вреда и создан специально для тестирования антивирусов. Затем я просканировал папку с помощью Norton Antivirus. NAV правильно определил вирус и предложил отправить его в карантин. Я отказался, а вместо этого сделал вот что: переименовал файл «eicar.com» в «..» и просканировал папку заново. На этот раз NAV показал, что каталог чист. Затем я проделал то же самое, но на томе с NTFS, и вирус переименовал в «aux». Результаты были аналогичными. Этот несложный опыт показал, что метод может найти применение и в сфере создания вирусов. Когда я изучал эту тему, то написал себе небольшую прогу, позволяющую быстро создавать/удалять файлы и каталоги с некорректными именами. Специально для нее я написал модуль на Дельфях, в котором реализовал наиболее часто используемые мной функции для работы с файлами, приспособив их для работы с некорректными именами. Если ты не хочешь сам возиться с реализацией описанных способов, то можешь взять прогу с нашего диска или скачать ее из инета. Думаю, что описанные мной способы не единственные возможные, и если ты поэкспериментируешь с разными функциями для работы с файлами, то ты можешь сделать свои реализации. Так что удачных тебе экспериментов! Файловые потоки NTFS Файловая система NTFS поддерживает так называемые «альтернативные файловые потоки» (Alternate Data Streams) во всех версиях NTFS. Эта технология позволяет прикреплять к файлу, расположенному на томе с NTFS, другие файлы (называемые потоками), содержащие любые данные. Прикрепленный к файлу поток не виден ни из проводника, ни из командной строки. Путь к потоку относительно файла, к которому он прикреплен, выглядит так: «file.ext:stream». Допускается также такой синтаксис для доступа к потоку: «file.ext:stream:$DATA». Более того, главный файл, к которому прикреплены потоки, сам может рассматриваться в качестве потока. В этом случае путь будет выглядеть так: «file.ext::$DATA». Потоки широко используются системой для хранения какой-либо служебной информации о файле. Например, сводки документа. Атрибуты файла или каталога тоже хранятся в потоке с названием $AttributeList. Еще есть несколько потоков, относящихся к тому NTFS, названия которых говорят сами за себя: $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, $Bitmap, $Boot, $BadClus, $Secure, $UpCase, $Extend. Вообще, символ “$” в названии потока говорит о том, что он каким-то образом используется системой. |