EXE

Zobacz też: rzeka o nazwie „Exe”.
.exe
ilustracja
Rozszerzenia pliku

.exe

Typ MIME

application/vnd.microsoft.portable-executable

Producent

Microsoft

Typ

wykonywalny (binarny język maszynowy)

Otwarty format?

nie

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.).

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

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

  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

  • Dependency Walker
  • MZ EXE header format
  • p
  • d
  • e
Komponenty systemów operacyjnych Microsoft Windows
Narzędzia
do zarządzania
Programy
Powłoka
Usługi
  • BITS
  • CLFS
  • Harmonogram zadań
  • Multimedia Class Scheduler
  • Service Control Manager
  • Shadow Copy
  • Error Reporting
  • Wireless Zero Configuration
Systemy plików
Serwer
  • Active Directory
  • DFS Replication
  • DNS
  • Domeny
  • Hyper-V
  • IIS
  • Koordynator transakcji rozproszonych
  • Menedżer zasobów systemu
  • Network Access Protection
  • Print Services for UNIX
  • Profile użytkowników mobilnych
  • Przekierowanie folderu
  • PWS
  • Remote Installation Services
  • Rights Management Services
  • Server Core
  • SharePoint
  • MSMQ
  • Usługi zdalnych pulpitów
  • Windows Deployment Services
  • Windows Media Services
  • WSUS
  • Zasady grupy
  • Zdalna kompresja różnicowa
Architektura
Bezpieczeństwo
Kompatybilność
API
Niekontynuowane
Gry
  • 3D Pinball
  • Chess Titans
  • FreeCell
  • Hearts
  • Hover!
  • InkBall
  • Hold 'Em
  • Mahjong Titans
  • Purble Place
  • Reversi
  • Saper
  • Solitaire
  • Spider Solitaire
  • Tinker
Inne