Файл с расширением .com, который пришёл по почте или найден в старом архиве, — это исполняемый файл формата COM, и двойной клик по нему в современной Windows либо ничего не даст, либо запустит неизвестный код напрямую. Прежде чем открывать такой файл, стоит понять, что именно он собой представляет и откуда взялся, потому что формат исторически был одним из любимых носителей вирусов эпохи DOS.
Ниже разберём, чем COM-файл отличается от привычного EXE, в каких системах он запускается сегодня, как безопасно проверить его содержимое и что делать, если файл не открывается.
Что такое COM-файл
COM — один из старейших форматов исполняемых файлов, появившийся ещё в CP/M и перекочевавший в MS-DOS. Его ключевая особенность — предельно простая структура: файл представляет собой «сырой» образ машинного кода без заголовков, таблиц relocations и метаданных. Система загружает его в память целиком и передаёт управление на первый байт.
Из-за этой простоты размер COM-программы ограничен одним сегментом памяти — код, данные и стек должны уместиться вместе. Исторически это означало потолок примерно в 64 КБ с учётом служебной области. Именно поэтому в формате COM писали небольшие утилиты, резидентные программы и системные команды.
Название расширения никак не связано с доменной зоной .com и с технологией Component Object Model в Windows — это просто совпадение букв. Путаница, однако, породила известную проблему безопасности, о которой ниже.
💡COM-файл — это исполняемый файл эпохи DOS без заголовка: код загружается в память «как есть». Он не имеет отношения ни к домену .com, ни к технологии COM в Windows.