Что такое формат файла COM?
Файл .com представляет собой простой исполняемый бинарный файл - один из старейших форматов программ в персональных компьютерах, возникший в операционной системе CP/M компании Digital Research, а затем перенесенный в MS-DOS. В отличие от формата .exe, который поддерживает несколько сегментов памяти и таблицы перемещения, программа .com является «плоским» бинарным файлом без заголовка: каждый байт загружается непосредственно в память по смещению 0x0100 внутри одного 64-килобайтного сегмента реального режима и немедленно исполняется. Это архитектурное ограничение означает, что файл .com никогда не может превышать размер примерно в 64 КБ.
Даже будучи дополненным более универсальным форматом .exe, формат .com оставался практичным и широко использовался на протяжении всей эры MS-DOS для небольших утилит, инструментов командной строки и резидентных программ (TSR). В 32-битных версиях Windows подсистема NTVDM запускала файлы .com прозрачно; NTVDM была удалена из 64-битных версий Windows, поэтому для нативного запуска в современных Windows требуется эмулятор, такой как DOSBox.
Расширение .com не имеет никакой связи с доменом верхнего уровня .com в интернете. Это совпадение в названиях исторически использовалось авторами вредоносного ПО, которые маскировали исполняемые файлы .com под ссылки или текст, что сделало формат хорошо задокументированным вектором социальной инженерии.
Безопасность и защита
РИСК: HIGHФайлы COM являются исполняемым кодом - исторически они были основным носителем вредоносного ПО для DOS (вирусы загрузочного сектора часто внедряли заразители .com). В современных 64-битных Windows они не могут запускаться нативно, что является практическим барьером безопасности, но в 32-битных системах или внутри эмуляторов DOS они выполняются без ограничений. Никогда не запускайте файл COM, полученный неожиданно; просканируйте его антивирусом перед запуском в любом эмуляторе. Особый риск: пользователи интернета путают .com (домен) с .com (исполняемый файл) и неосознанно скачивают исполняемые файлы, думая, что это веб-страницы.
Детали формата
в двух словах- Заглушка регистрации Windows Component Object Model - Редко; некоторые очень старые утилиты саморегистрации серверов Windows COM использовали расширение .com.
- Скрипт сетевых команд (Cisco IOS и т. д.) - Некоторые встроенные/сетевые устройства используют .com для прошивок или командных скриптов - не связано с DOS.
Программы, открывающие файлы COM
Технические подробности
глубокая спецификация| Кодировка | Необработанный бинарный машинный код (реальный режим x86) |
| Порядок байтов | Little-endian (x86) |
| Заголовок файла | Отсутствует - плоский бинарный файл без заголовка, без таблицы перемещения, без дескрипторов сегментов |
| Сигнатура файла | Отсутствует - идентифицируется только по расширению; первые байты обычно являются кодом операции JMP (0xEB или 0xE9), но это не обязательно |
| Адрес загрузки | Загружается по адресу segment:0x0100; префикс программного сегмента (PSP) занимает байты 0x0000-0x00FF сегмента |
| Модель памяти | CS = DS = ES = SS указывают на один и тот же сегмент реального режима 64 КБ - разделение сегментов отсутствует |
| Максимальный размер файла | ~65 280 байт (один сегмент 64 КБ минус 256 байт PSP и минимальное выделение стека) |
| MIME-тип | application/x-msdos-program |
| Поддержка 64-битных Windows | Нативно не поддерживается - NTVDM (16-битная подсистема) удалена из 64-битных Windows; используйте DOSBox или DOSBox-X |
| Наследие CP/M | Формат возник в Digital Research CP/M (1974) и был принят без изменений для MS-DOS 1.0 (1981) |
| Заменен на | .exe для программ размером более 64 КБ; .cmd / .bat для консольных скриптов Windows |
| Примечание по безопасности | Исторически являлся основным вектором вредоносного ПО - легко исполняется и модифицируется без нарушения структуры; часто маскируется под имена файлов в стиле доменов |
| Операционные системы | MS-DOS, PC DOS, FreeDOS, Windows 32-bit (через NTVDM), CP/M; DOSBox/DOSBox-X для современного использования |
| Выпущен | 1974 (CP/M); MS-DOS 1.0, 1981 |
| Последняя версия | No versioning - raw binary format unchanged |
Конвертации COM
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах COM.