Что такое ехе файл

Что такое ехе файл

.EXE (сокр. англ. executable — исполнимый) — расширение исполняемых файлов, применяемое в операционных системах DOS, Windows, Symbian OS, OS/2 и в некоторых других, соответствующее ряду форматов. Кроме объектного кода может содержать различные метаданные (ресурсы, цифровая подпись [1] ).

Содержание

Форматы .EXE [ править | править код ]

  • MZ — 16-битный формат, основной формат файлов .EXE в DOS.
  • EXE-файлы для Windows и OS/2 используют другие форматы для основной части программы, но всё равно начинаются с заглушки в формате MZ, которая, как правило, при попытке запустить файл в DOS выводит сообщение This program cannot be run in DOS mode. («Эту программу невозможно запустить в режиме DOS») и завершает выполнение, хотя теоретически может запускать некий произвольный код, работоспособный в DOS.
  • NE — 16-битный формат, использовался в Windows 3.x[2] , OS/2 и MS-DOS.
  • LE — смешанный 16- и 32-битный формат, ранее использовался в OS/2 и Windows (VxD).
  • LX — 32-битный формат, используется в OS/2.
  • PE — 32- и 64-битный формат, используется в современных версиях Windows, начиная с Windows NT и Windows 95.
  • Структура файлов [ править | править код ]

    Файл EXE, создаваемый компоновщиком, состоит из двух частей:

    • управляющая информация для загрузчика;
    • загрузочный модуль.

    Информация для загрузчика, описанная ниже, расположена в начале файла и образует так называемый заголовок. Сразу за ним следует тело загрузочного модуля, представляющее собой копию образа памяти задачи, построенной компоновщиком.

    Стандартная часть заголовка имеет следующий формат [3] :

    00-01 4D5A — сигнатура файла .EXE; 02-03 Длина образа задачи по модулю 512 (то есть число полезных байт в последнем блоке). Компоновщики версий до 1.10 помещали в это поле 04; если оно имеет такое значение, его рекомендуется игнорировать); 04-05 Длина файла в блоках; 06-07 Число элементов таблицы настройки адресов; 08-09 Длина заголовка в 16-байтных параграфах. Используется для выяснения начала тела загрузочного модуля; 0A-0B Минимальный объём памяти, которую нужно выделить после конца образа задачи (в 16-байтных параграфах); 0C-0D Максимальный объём памяти, которую нужно выделить после конца образа задачи (в 16-байтных параграфах); 0E-0F Сегментный адрес начала стекового сегмента относительно начала образа задачи; 10-11 Значение SP при входе в задачу; 12-13 Контрольная сумма — ноль минус результат сложения без переноса всех слов файла; 14-15 Значение IP (счетчика команд) при входе в задачу; 16-17 Сегментный адрес начала кодового сегмента относительно начала образа задачи; 18-19 Адрес первого элемента таблицы настройки адресов относительно начала файла; 1A-1B Номер сегмента перекрытий (0 для корневого сегмента программы).

    Читайте также:  Фильмы ужасов про арктику и антарктику

    Далее следует таблица настройки адресов. Таблица состоит из элементов, число которых записано в байтах 06-07. Элемент таблицы настройки состоит из двух полей: 2-байтного смещения и 2-байтного сегмента, и указывает слова в загрузочном модуле, содержащее адрес, который должен быть настроен на место памяти, в которое загружается задача. Настройка производится следующим образом:

    1. В области памяти после резидентной части выполняющей загрузку программы строится префикс программного сегмента (PSP);
    2. Стандартная часть заголовка считывается в память;
    3. Определяется длина тела загрузочного модуля (разность длины файла 04-07 и длины заголовка 08-09 плюс число байт в последнем блоке 02-03). В зависимости от признака, указывающего загружать задачу в конец памяти или в начало, определяется сегментный адрес для загрузки. Этот сегмент называется начальным сегментом;
    4. Загрузочный модуль считывается в начальный сегмент;
    5. Таблица настройки порциями считывается в рабочую память;
    6. Для каждого элемента таблицы настройки к полю сегмента прибавляется сегментный адрес начального сегмента. В результате элемент таблицы указывает на слово в памяти, к которому прибавляется сегментный адрес начального сегмента;
    7. Когда таблица настройки адресов обработана, в регистры SS и SP записываются значения, указанные в заголовке, а к SS прибавляется сегментный адрес начального сегмента. В ES и DS записывается сегментный адрес начала PSP. Управление передается по адресу, указанному в заголовке (байты 14-17).

    Структура программного сегмента [ править | править код ]

    При обращении к нерезидентной команде или вызове программы операцией Exec, DOS определяет минимальный адрес, начиная с которого может быть загружена соответствующая программа. Эта область называется программным сегментом.

    По смещению 0000 в программном сегменте DOS формирует префикс программного сегмента (PSP). Сама программа загружается по смещению 0100.

    Программа завершается переходом по адресу 0000 в программном сегменте, выполнив INT 20, выполнив INT 21 с AH=0 или AH=4C, или обратившись к подпрограмме по адресу 0050 в программном сегмент с AH=0 или AH=4C.

    Читайте также:  Не получается вдохнуть до конца

    Примечание: при завершении иначе, чем операцией 4C, программа должна предварительно заслать в CS адрес начала своего программного сегмента.

    Все четыре способа возвращают управление в резидентную часть COMMAND.COM (при этом операция 4C передает код завершения). Все четыре способа приводят к продолжению выполнения программы, обратившейся к операции Exec (4B). При этом вектора прерываний 22, 23 и 24 (завершение, Ctrl-Break, фатальная ошибка обмена) восстанавливаются из Префикса Программного сегмента возобновляемой задачи. Затем управление передается по адресу завершения. Если программа возвращается в COMMAND.COM, то управление передается в нерезидентную часть. Если это происходит во время выполнения командного файла, оно продолжается, иначе COMMAND выдает на терминал приглашение и ждет ввода следующей команды.

    Когда загруженная программа получает управление, имеют место следующие условия:

    Чем открыть, описание – 2 формата файла
    1. Приложение Windows — Исполняемые файлы
    2. Приложение PortableApps.com — Исполняемые файлы

    Заголовок и ключевые строки
    Подробное описание

    Файл EXE — Windows, DOS-приложение или самораспаковывающийся архив. Любой файл в ОС Windows с расширением EXE открывается двойным щелчком мыши.

    Файлы install.exe или setup.exe — это приложения, которые устанавливают программное обеспечение на компьютер. Двойной клик по ним инициализирует процесс установки.

    В Mac OS EXE-приложения также могут быть запущены, но не напрямую, а с помощью эмуляторов Windows (например, Parallels Desktop или VMware Fusion).

    Описание формата EXE

    Исполняемый файл EXE является приложением Windows либо DOS систем. Такой тип файла может включать в себя самораспаковывающиеся архивы. Имеют невероятно широкое распространение.

    Стоит отметить, что в операционных системах Windows, открыть файл .exe можно посредством двойного клика левой клавиши мыши. В прочих платформах Linux или Mac OS запустить рассматриваемое расширение возможно при помощи предварительно установленных на компьютер эмуляторов, к примеру VMware Workstation.

    Читайте также:  Как копировать файлы на макбуке

    Формат .exe так же поддаётся редактированию, для этого необходимо воспользоваться утилитой на подобии Resource Hacker. Среди пользователей распространены случаи нарушения ассоциации файлов по типам, когда множество ярлыков в формате EXE могут иметь одинаковый внешний вид. При такой ситуации можно воспользоваться приложением Unassociate File Types, способным корректно восстановить ассоциации.

    Расширение может являться сценарием программного обеспечения для активации процесса инициализации остальных файлов определенного разработчика в целях последующего исправного запуска той или иной утилиты. Вместе с расширением .exe может содержаться и справочная информация, способствующая соответствующему поиску и загрузке дополнительных компонентов.

    Информация в расширении необходима для формирования надлежащей среды Microsoft DOS и системах Виндоус. Если открыть exe файлы как самораспаковывающийся архив, можно отметить факт того, что установка хранимого контента будет произведена в предварительно заданную директорию.

    Ссылка на основную публикацию
    Adblock detector