EXE

format pliku wykonywalnego
(Przekierowano z Exe)

EXE (od ang. executable, wykonywalny) – rozszerzenie nazwy pliku wykonywalnego w systemach Microsoft Windows, MS-DOS oraz OS/2; pliki o tym rozszerzeniu w zamierzeniu zawierają przede wszystkim skompilowany kod maszynowy programu, choć może zawierać także inne zasoby (np. dotyczące struktury okien, ikony, obrazy, dźwięki, itp.).

.exe
ilustracja
Rozszerzenia pliku

.exe

Typ MIME

application/vnd.microsoft.portable-executable

Producent

Microsoft

Typ

wykonywalny (binarny język maszynowy)

Otwarty format?

nie

Sygnatura pliku to sekwencja bajtów, zwykle na początku pliku, pomagająca zidentyfikować format pliku (jest to kolejny element potwierdzający po rozszerzeniu pliku); w przypadku plików wykonywalnych EXE (oraz innych, mających identyczną strukturę, m.in. DLL, OCX, ACM, AX, IME, MUI, RLL, TSP, CPL, DRV, VXD, SCR i niektóre SYS) najczęściej dwoma pierwszymi znakami są litery „MZ” pochodzące od inicjałów autora, Marka Zbikowskiego[1]. Plik EXE może zawierać kod wykonywalny w różnych formatach (zależny przykładowo od systemu operacyjnego, zob. dalej), pliki binarne typu Portable Executable w dalszej części zawierają sygnaturę „PE”.

Formaty

edytuj

Istnieje kilka głównych formatów plików wykonywalnych:

DOS
  • 16-bitowy plik wykonywalny DOS formatu MZ – oryginalny format pliku wykonywalnego systemu DOS, identyfikowany za pomocą dwóch znaków „MZ” w kodzie ASCII na początku pliku; ma relatywnie małe możliwości. Dopuszczalne, chociaż zdecydowanie rzadziej używane, są także znaki „ZM”.
  • 16-bitowy (New Executable, „nowy wykonywalny”, tzn. nowy typ pliku wykonywalnego) – używany w wielowątkowym systemie DOS 4.0 i w 16-bitowych wersjach Microsoft Windows, identyfikowany za pomocą liter „NE” na początku pliku; nie zdobył wielkiej popularności, nie mógł być uruchamiany w pozostałych wersjach systemu DOS, lecz możliwe to było w przypadku 32-bitowych wersji systemów Windows i OS/2.
OS/2
  • 32-bitowy (Linear Executable, „liniowy [plik] wykonywalny”) – wprowadzony w OS/2 2.0, identyfikowany znakami „LX” na początku pliku; może być uruchomiany w systemie OS/2 w wersji począwszy od 2.0.
  • Mieszany 16/32-bitowy (Linear Executable) wprowadzony w OS/2 2.0, identyfikowany za pomocą początkowych znaków „LE”; nie używany w OS/2, znalazł zastosowanie w sterownikach VxD systemów Windows 3.x i Windows 9x.
Microsoft Windows
  • 32-bitowy (Portable Executable, „przenośny [plik] wykonywalny”) – wprowadzony w Windows NT, identyfikowany za pomocą znaków „PE” w kodzie ASCII; wykonywalny we wszystkich systemach Windows NT oraz Windows 95 i nowszych, a nawet systemie DOS rozszerzonym za pomocą ekstendera HX, wykorzystywany ponadto w BeOS R3 (format tam użyty narusza jednak specyfikację tego formatu).
  • 64-bitowy (Portable Executable) – wersja dla 64-bitowych systemów Windows, może być uruchamiany tylko w 64-bitowych systemach Windows.
Pozostałe

Poza powyższymi istnieją także niestandardowe formaty, takie jak W3 (biblioteka plików LE, używana wyłącznie w WIN386.EXE), W4 (skompresowany zbiór plików LE, używany tylko w Vmm32.vxd), DL, MP, P2, P3 (trzy ostatnie używane przez extender Phar Lap).

W przypadku plików wykonywalnych w formacie 16- i 32-bitowym dla systemu Windows standardem jest rozpoczęcie ich krótkim programem poprzedzonym sygnaturą „MZ” (tzw. stub). Jego celem jest zwykle poinformowanie o przeznaczeniu tego programu dla systemu Windows (zazwyczaj w postaci tekstu „This program cannot be run in DOS mode.” (pol. „Ten program nie może być uruchomiony w trybie DOS.”) lub „This program requires Microsoft Windows.” (pol. „Ten program wymaga Microsoft Windows.”)), choć możliwe jest umieszczenie w tym miejscu innego kodu (korzystając z odpowiedniej opcji konsolidatora), np. wersji programu dla systemu DOS. Zasadnicza część danego programu, tzn. fragment przeznaczony dla systemu Windows, ma sygnaturę „NE” lub „PE” – kod zaczynający się od sygnatury „MZ” jest wówczas ignorowany (poza odnośnikiem do struktury PE i samą sygnaturą). Jednakże kod „PE” może być również wykonany w systemie DOS przy użyciu wspomnianego wyżej extendera DOS HX.

Przypisy

edytuj
  1. Matt Pietrek. An In-Depth Look into the Win32 Portable Executable File Format. „MSDN Magazine”, s. sekcja „The MS-DOS Header”, luty 2002. (ang.).  [dostęp 2016-11-30]

Linki zewnętrzne

edytuj