Jump to content

.exe: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverted edits by 2603:9001:101:303E:2961:95E1:18D0:F31B (talk) (HG) (3.4.10)
m script-assisted date audit and style fixes per MOS:NUM
Line 1: Line 1:
{{Short description|Filename extension}}
{{Short description|Filename extension}}
{{Redirect|EXE||Exe (disambiguation){{!}}Exe}}
{{Redirect|EXE||Exe (disambiguation){{!}}Exe}}
{{Use dmy dates|date=May 2019|cs1-dates=y}}
{{Use dmy dates|date=January 2023|cs1-dates=y}}
{{Infobox file format
{{Infobox file format
| name = Windows Executable File
| name = Windows Executable File
Line 29: Line 29:
{{anchor|LX|LE}}
{{anchor|LX|LE}}
<!-- In addition to the anchors, the OS/2 section title is also linked to from redirects -->
<!-- In addition to the anchors, the OS/2 section title is also linked to from redirects -->
;32-bit Linear Executable (LX): Introduced with OS/2 2.0, these can be identified by the "LX" in ASCII. These can only be run by OS/2 2.0 and higher.<ref>{{cite web|url=http://www.operating-system.org/betriebssystem/_english/bs-os2.htm|title=OS/2 Operating System|date=2004-04-03|access-date=2014-02-13|work=operating system documentation project}}</ref> Some [[DOS extender]]s{{which|date=July 2021}} also use this format.
;32-bit Linear Executable (LX): Introduced with OS/2 2.0, these can be identified by the "LX" in ASCII. These can only be run by OS/2 2.0 and higher.<ref>{{cite web|url=http://www.operating-system.org/betriebssystem/_english/bs-os2.htm|title=OS/2 Operating System|date=3 April 2004|access-date=13 February 2014|work=operating system documentation project}}</ref> Some [[DOS extender]]s{{which|date=July 2021}} also use this format.
;Mixed 16/32-bit Linear Executable (LE): Introduced with OS/2 2.0, these can be identified by the "LE" in ASCII. [[VxD]] drivers on [[Windows 3.1x|Windows 3.x]], [[OS/2]], and [[Windows 9x]], as well as some DOS extenders{{which|date=July 2021}} use this format.
;Mixed 16/32-bit Linear Executable (LE): Introduced with OS/2 2.0, these can be identified by the "LE" in ASCII. [[VxD]] drivers on [[Windows 3.1x|Windows 3.x]], [[OS/2]], and [[Windows 9x]], as well as some DOS extenders{{which|date=July 2021}} use this format.


Line 39: Line 39:
=== Other ===
=== Other ===
{{anchor|W3|W4|DL|MP|P2|P3}}
{{anchor|W3|W4|DL|MP|P2|P3}}
There are other EXE formats, including but not limited to ''W3'' (a collection of LE files, only used in WIN386.EXE), ''W4'' (a compressed collection of LE files, only used in VMM32.VXD), ''DL'', ''MP'', ''P2'', ''P3'' (last three used by [[Phar Lap (company)|Phar Lap]] extenders).<ref>{{cite web|url=http://www.ctyme.com/intr/rb-2939.htm#table1593|title=Int 21/AH=4Bh|first=Ralf|last=Brown|website=Ralf Brown's Interrupt List|date=2000-07-16|access-date=2018-10-30}}</ref>
There are other EXE formats, including but not limited to ''W3'' (a collection of LE files, only used in WIN386.EXE), ''W4'' (a compressed collection of LE files, only used in VMM32.VXD), ''DL'', ''MP'', ''P2'', ''P3'' (last three used by [[Phar Lap (company)|Phar Lap]] extenders).<ref>{{cite web|url=http://www.ctyme.com/intr/rb-2939.htm#table1593|title=Int 21/AH=4Bh|first=Ralf|last=Brown|website=Ralf Brown's Interrupt List|date=16 July 2000|access-date=30 October 2018}}</ref>


== See also ==
== See also ==
Line 54: Line 54:
<ref name="PE Format">{{Cite web |url=https://learn.microsoft.com/en-us/windows/win32/debug/pe-format |title=PE Format |website=Windows App Development |publisher=Microsoft |date=25 August 2019}}</ref>
<ref name="PE Format">{{Cite web |url=https://learn.microsoft.com/en-us/windows/win32/debug/pe-format |title=PE Format |website=Windows App Development |publisher=Microsoft |date=25 August 2019}}</ref>
<ref name="/STUB">{{cite web |url=https://learn.microsoft.com/en-us/cpp/build/reference/stub-ms-dos-stub-file-name |title=/STUB (MS-DOS Stub File Name) |work=C/C++ Building Reference |edition=Visual Studio 2022 |publisher=[[Microsoft]] |access-date=10 January 2014}}</ref>
<ref name="/STUB">{{cite web |url=https://learn.microsoft.com/en-us/cpp/build/reference/stub-ms-dos-stub-file-name |title=/STUB (MS-DOS Stub File Name) |work=C/C++ Building Reference |edition=Visual Studio 2022 |publisher=[[Microsoft]] |access-date=10 January 2014}}</ref>
<ref name="DOS Stub">{{cite web |url=http://thestarman.pcministry.com/asm/debug/DOSstub.htm |title=DOS Stub Program |website=The Starman's Realm |publisher=[[WP:SPS|Self-published]] |first=Daniel B. |last=Sedory |date=12 October 2004 |access-date=2014-01-10}}</ref>
<ref name="DOS Stub">{{cite web |url=http://thestarman.pcministry.com/asm/debug/DOSstub.htm |title=DOS Stub Program |website=The Starman's Realm |publisher=[[WP:SPS|Self-published]] |first=Daniel B. |last=Sedory |date=12 October 2004 |access-date=10 January 2014}}</ref>
<ref name="regedit in real mode">{{cite web |url=http://support.microsoft.com/kb/131352 |title=Using Registry Editor in Real Mode |work=Support |publisher=[[Microsoft]]|access-date=10 January 2014 |date=15 November 2006|archive-url=https://web.archive.org/web/20140115050101/http://support.microsoft.com/kb/131352|archive-date=15 January 2014 |quote=Windows 95 includes a Registry Editor program (Regedit.exe) that runs in both the real-mode MS-DOS environment and in the protected-mode Windows environment. When you need to modify the registry without starting Windows 95, use Registry Editor in real mode. Note that the switches listed in this article only work in real-mode.}}</ref>
<ref name="regedit in real mode">{{cite web |url=http://support.microsoft.com/kb/131352 |title=Using Registry Editor in Real Mode |work=Support |publisher=[[Microsoft]]|access-date=10 January 2014 |date=15 November 2006|archive-url=https://web.archive.org/web/20140115050101/http://support.microsoft.com/kb/131352|archive-date=15 January 2014 |quote=Windows 95 includes a Registry Editor program (Regedit.exe) that runs in both the real-mode MS-DOS environment and in the protected-mode Windows environment. When you need to modify the registry without starting Windows 95, use Registry Editor in real mode. Note that the switches listed in this article only work in real-mode.}}</ref>
<ref name="dosStub.exe">{{cite web|url=http://purl.net/xyzzy/dos/dostub.htm|title=dostub.exe|first=Frank |last=Ellermann|website=Purl.net|date=2014-01-22|access-date=2014-01-24}}</ref>
<ref name="dosStub.exe">{{cite web|url=http://purl.net/xyzzy/dos/dostub.htm|title=dostub.exe|first=Frank |last=Ellermann|website=Purl.net|date=22 January 2014|access-date=24 January 2014}}</ref>
<ref name="PE32plus">{{Cite journal |url=https://msdn.microsoft.com/en-us/magazine/bb985992(printer).aspx|title=An In-Depth Look into the Win32 Portable Executable File Format |journal=[[MSDN#Magazine|MSDN Magazine]] |publisher=[[Microsoft]] |date=February 2002 |first=Matt |last=Pietrek |author-link=Matt Pietrek}}</ref>
<ref name="PE32plus">{{Cite journal |url=https://msdn.microsoft.com/en-us/magazine/bb985992(printer).aspx|title=An In-Depth Look into the Win32 Portable Executable File Format |journal=[[MSDN#Magazine|MSDN Magazine]] |publisher=[[Microsoft]] |date=February 2002 |first=Matt |last=Pietrek |author-link=Matt Pietrek}}</ref>


Line 62: Line 62:


== Further reading ==
== Further reading ==
* {{cite newsgroup |title=Re: Run a COM file |author-first=Matthias R. |author-last=Paul |date=2002-10-07 |orig-year=2000 |newsgroup=alt.msdos.programmer |url=https://groups.google.com/d/msg/alt.msdos.programmer/d7blJjY0H5M/Qu3VeTOIGVcJ |access-date=2017-09-03 |url-status=live |archive-url=https://archive.today/20170903230312/https://groups.google.com/forum/%23!msg/alt.msdos.programmer/d7blJjY0H5M/Qu3VeTOIGVcJ |archive-date=2017-09-03}} [https://groups.google.com/d/msg/alt.lang.asm/PNOd9zfYow0/vXbab16j4XwJ]
* {{cite newsgroup |title=Re: Run a COM file |author-first=Matthias R. |author-last=Paul |date=7 October 2002 |orig-year=2000 |newsgroup=alt.msdos.programmer |url=https://groups.google.com/d/msg/alt.msdos.programmer/d7blJjY0H5M/Qu3VeTOIGVcJ |access-date=3 September 2017 |url-status=live |archive-url=https://archive.today/20170903230312/https://groups.google.com/forum/%23!msg/alt.msdos.programmer/d7blJjY0H5M/Qu3VeTOIGVcJ |archive-date=3 September 2017}} [https://groups.google.com/d/msg/alt.lang.asm/PNOd9zfYow0/vXbab16j4XwJ]


== External links ==
== External links ==

Revision as of 14:37, 28 January 2023

Windows Executable File
Filename extension
.exe
Internet media type
application/vnd.microsoft.portable-executable
Magic number0x4d 0x5a
Developed byMicrosoft
Type of formatExecutable file
Container forMZ, NE, LX, LE, PE, PE32+, W3, W4, DL, MP, P2, P3
Open format?No

.exe is a common filename extension denoting an executable file (the main execution point of a computer program) for Microsoft Windows, OS/2, and DOS.[1]

File formats

There are numerous file formats which may be used by a file with a .exe extension.

DOS

16-bit DOS MZ executable (MZ)
The original DOS executable file format. These formats can be identified by the letters "MZ" at the beginning of the file in ASCII. All later formats have an MZ DOS stub header.[citation needed]
16-bit New Executable (NE)
Introduced with the multitasking MS-DOS 4.0 and also used by 16-bit OS/2 and Windows, NE can be identified by the "NE" in ASCII.

OS/2

32-bit Linear Executable (LX)
Introduced with OS/2 2.0, these can be identified by the "LX" in ASCII. These can only be run by OS/2 2.0 and higher.[2] Some DOS extenders[which?] also use this format.
Mixed 16/32-bit Linear Executable (LE)
Introduced with OS/2 2.0, these can be identified by the "LE" in ASCII. VxD drivers on Windows 3.x, OS/2, and Windows 9x, as well as some DOS extenders[which?] use this format.

Windows

32-bit Portable Executable (PE)
Introduced with Windows NT, they are fat binaries consisting of a DOS-specific and a Windows-specific part. The DOS-specific part (dubbed DOS stub) is a legitimate 16-bit DOS program. Microsoft C++ linker, by default, uses a minimal DOS stub that prints the following message: "This program cannot be run in DOS mode."[3][4][5] Windows ignores the DOS stub and executes the Windows-specific portion that starts with the "PE\0\0" ASCII sequence (letters "PE" and two null bytes).[3] It is possible to link other, more function DOS stubs.[3][4][6] Indeed, there are a few such dual programs, such as regedit in Windows 95[7] and old versions of WinZIP self extractors.
64-bit Portable Executable (PE32+)
Introduced by 64-bit versions of Windows, this is a PE file with wider fields. In most cases, code can be written to simply work as either a 32 or 64-bit PE file.[8] This file also includes a DOS stub.[6]

Other

There are other EXE formats, including but not limited to W3 (a collection of LE files, only used in WIN386.EXE), W4 (a compressed collection of LE files, only used in VMM32.VXD), DL, MP, P2, P3 (last three used by Phar Lap extenders).[9]

See also

References

  1. ^ ".EXE File Extension". FileInfo - The File Extensions Database. Sharpened Productions. Retrieved 2019-08-16.
  2. ^ "OS/2 Operating System". operating system documentation project. 2004-04-03. Retrieved 2014-02-13.
  3. ^ a b c "PE Format". Windows App Development. Microsoft. 2019-08-25.
  4. ^ a b "/STUB (MS-DOS Stub File Name)". C/C++ Building Reference (Visual Studio 2022 ed.). Microsoft. Retrieved 2014-01-10.
  5. ^ Sedory, Daniel B. (2004-10-12). "DOS Stub Program". The Starman's Realm. Self-published. Retrieved 2014-01-10.
  6. ^ a b Ellermann, Frank (2014-01-22). "dostub.exe". Purl.net. Retrieved 2014-01-24.
  7. ^ "Using Registry Editor in Real Mode". Support. Microsoft. 2006-11-15. Archived from the original on 2014-01-15. Retrieved 2014-01-10. Windows 95 includes a Registry Editor program (Regedit.exe) that runs in both the real-mode MS-DOS environment and in the protected-mode Windows environment. When you need to modify the registry without starting Windows 95, use Registry Editor in real mode. Note that the switches listed in this article only work in real-mode.
  8. ^ Pietrek, Matt (February 2002). "An In-Depth Look into the Win32 Portable Executable File Format". MSDN Magazine. Microsoft.
  9. ^ Brown, Ralf (2000-07-16). "Int 21/AH=4Bh". Ralf Brown's Interrupt List. Retrieved 2018-10-30.

Further reading

External links