Всегда ли можно заменить EXE на COM?

Всегда ли можно заменить EXE на COM?

Предварительный просмотр

Наше антивирусное программное обеспечение не позволило мне скопировать EXE-файл в папку автозагрузки Windows 7 (например, calc.exe), поскольку это EXE-файл.

Поэтому я переименовал его в COM-файл, а затем скопировал его, и это стало возможным (очень профессионально).

И конечно же - calc.comработает.

Что побудило меня спросить (исключительно из любопытства):

Вопрос

Когда EXE-программа не запустится при переименовании в COM? Почти все exe-файлы, которые я проверил, работали.

Мне бы хотелось узнать внутренние причины, почему так и почему нет.

решение1

Это связано с внутренним форматом файла. Изначально файлы .com были простыми образами памяти, а файлы .exe имели множество заголовков, связанных с ними. В результате вы не могли переименовывать их. Со временем, и им пришлось сделать вещи обратно совместимыми, Microsoft изменила это так, что ОС смотрит на сам файл, чтобы определить, какой это тип файла, а не на расширение. В результате, когда вы запускаете переименованный файл, Windows полностью игнорирует расширение. Смотрите ссылки ниже для более подробного объяснения.

Похожий вопрос

Объяснение в блоге Microsoft

Связанный контент