A executable hack, also known as a exe hack, is a modification of the executable that is shipped with Doom, Doom II, Heretic, Hexen or Strife. The term usually denotes a modification made by fans, as opposed to any of the officially licensed versions produced by id Software or affiliated companies. Unlike a source port or a source modification, they apply their changes directly to the executable and are usually made to raise limits as opposed to removing them.
Although executable hacks are a rarity, they continue to be made by a small but selected group of authors knowledgeable enough to direct modify the executable.
Executable hacks can be traced back to the mid 1990's when DeHackEd was released, allowing the stock executable be modified with new parameters through a patch system, presented as a .deh file. In order to do this, DeHackEd generates a copy of the Doom II executable, DoomHack, stylized as doomhack.exe to modify and merge the .deh patch together with the DoomHack executable. In DeHackEd's INI file, one can specify a custom name for the resulting executable, set by the user. In the present day, for those projects that target pure vanilla/DOS compatibility, DoomHack may still be used.
DoomHack evidently does not raise any limits, but simply modifies the hardcoded values present in the executable to different ones, enabling the usage of custom actors. DeHackEd patches can also be used in conjunction with an executable hack such as Doom2-plus, enhancing the executable further.
The rise of executable hacks
The first executable hacks appeared in the early to mid 2000's. They were seen as an option to retain complete vanilla and demo compatibility of the stock program yet still raise several static limits within the executable, such as MAXDRAWSEGS or MAXVISPLANES. An intimate knowledge of assembly language along with a disassembler, such as IDA, is often needed to create the necessary patches to apply to the executable. A specialized program called CRACKER.EXE exists that creates .crk files that can be used for this very purpose, although other patches come in the form of pure source code.
Unlike source ports or modifications, executable hacks are nearly always based off the vanilla executables, namely:
They are not derived from the original Linux Doom source code.
Executable hack versus source modification
The differences between a executable hack and a source modification lay in the nuances they make and the intents of their purposes:
- A executable hack is meant to raise the limits offered by the original executable and retaining full compatibility, rather than removing said limits altogether.
- A source modification includes new additions that are meant for a specific goal in mind, providing a subset of new features that aren't enough to warrant the source port moniker.
- Executable hacks do not come with source code, as they are based directly of the game's executable. Several executable hacks come in the form of specific patches such as .crk files.
The gamesrc-ver-recreation project is a collection of modifications of various programs' released source codes, the purpose being the reproduction of originally released EXEs, byte-by-byte (or at least of EXEs close to these).
It includes restorations of various games that utilize the Doom engine: Doom, Heretic, Hexen, Strife and Chex Quest. As gamesrc-ver-recreation recreates and reverse-engineers proprietary code, they should not be considered a executable hack, but rather, a source modification.
Doom Patcher is a utility created by Alexandre-Xavier Labonté-Lamoureux, better known as AxDoomer, that can apply several executable hacks in an easy to use manner to the vanilla Doom executable, either Doom v1.9 or Doom 2 v1.9. It comprises a collection of patches that were distributed on the Doomworld forums over the years, and were created by Miguel Folatelli (myk), Andrey Budko (entryway), Colin Phipps (cph), Randy87 and xttl.
List of executable hacks
As a high level of programming knowledge is required to create a executable hack they are less in numbers than source modifications or source ports. A summary list of executable hacks is provided below.