Сообщений: 2688 Вас поблагодарили: 23 раз(а) в 23 сообщениях Зарегистрирован: 24.03.10 Со дня регистрации: 5109
Откуда: Россия
Всё чаще я слышу от различных знакомых забавную байку о том, что, дескать, нельзя создать в Windows папку с именем «Con», якобы потому, что «Con» — школьная кличка всеми любимого Уильяма Генри Гейтса третьего. Не сомневаюсь, что эта байка переживет нас с вами, но, тем не менее, люди, претендующие на звание IT-специалистов должны вникнуть в предмет немного поглубже.
Итак, что же за таинственное имя «Con»?
На самом деле, это не единственное "запретное" имя в операционных системах от Microsoft:
помимо «Con» есть еще такие:
PRN, AUX, CLOCK$, NUL, COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
Всё вышеперечисленное досталось современным версиям Windows от прародителя - MS-DOS, где эти имена были зарезервированы для ввода и вывода в порты (к примеру, LPTx - параллельные порты, COMx - последовательные итд)
А мифический "Con" - сокращение от "Console", стандартного текстового интерфейса ввода-вывода.
В частности, вы можете полюбоваться за работу с псевдопортом в действии:
В cmd.exe наберите команду
copy con test.txt
после чего, все вводимые вами в консоль символы, автоматически будут попадать в текстовый файл test.txt в текущей директории.
Продолжаться этот занимательный процесс будет до тех пор, покуда вы не попросите у интерпретатора его становить сочетанием клавиш Ctrl+Z.
Легко убедиться в том, что текстовый файл действительно существует и заполнен
notepad test.txt
Точно так же и с выводом
copy test.txt con
выведет в консоль содержимое файла подобно команде type
Чуете в чем соль?
А теперь представьте, что у вас существовала бы папка Con,
и вы вводите команду
copy test.txt con
куда попадет содержимое файла? в папку или в порт? вот и ОС не знает, а неоднозначности она не любит.
Надо сказать, что псевдопорты уже давно не используются, и эти архаизмы пришли к нам, ради совместимости с MS-DOS, как и прочие проблемы OC Windows.
Почему я назвал это проблемой? И почему эта тема вообще относится к разделу безопасности?
А вот вообразите, что есть пара трюков, которые позволяют-таки создать злополучную папку с именем одного из псевдопортов.
:whistle:
md \.C:Con
:whistle:
Ну ладно, создали. Можем убедиться в этом
dir c:
Явно видим в консоли и в explorer.exe наличие в корневом каталоге диска C папки Con
но вот незадача - удалить её стандартными путями мы не можем ни там, ни там!
Ну ладно, у нас там лежит текстовый файл, а что если бы там лежал исполнительный файл трояна?
Проверим гипотезу:
В папке C:Con создадим тестовую папку, и тестовый текстовый файл и попросим могучий AVZ удалить папку Con со всем её содержимым
Результат был предсказуем - внутренности папки AVZ-таки подчистил (и то молодец, ибо даже команда cd C:Con обернется провалом), а вот саму папку удалить не смог.
Удалить её можно таким же фертелем, как мы её и добавили
rd \.C:Con
Такие дела.
Мораль сей басни такова: два бакса лучше, чем один бакс!
Статья перенесена из блога пользователя Волков Петр.
Здесь присутствуют: 1 (пользователей: 0, гостей: 1)