Questions tagged [executables]

For questions about executable binary files.

Filter by
Sorted by
Tagged with
3 votes
2 answers
447 views

Why does my MZ executable's BSS inflate by ~1,5KB after linking fopen() with MSC?

For a game reversing project, I am trying to undo linking with the C library performed by the MSC 5.1 C compiler+linker. To that end, I have created a simple executable that does nothing except ...
neuviemeporte's user avatar
5 votes
1 answer
1k views

Original purpose of the Rich Header in PE files

The Rich Header was presumably introduced by Microsoft in a previous version of Visual Studio. What was its original purpose and how does it achieve this? Is DanS the designer, similar to MZ?
Single Malt's user avatar
  • 1,839
4 votes
1 answer
502 views

Initial contents of CPU registers at OS/2 1.x program startup

What are the initial contents of CPU registers at OS/2 1.x program startup? I know that CS, IP, DS, SS and SP are initialized based on the NE header. But what about the other registers? Are they ...
pts's user avatar
  • 1,923
11 votes
1 answer
573 views

How to write Win16 program with only a single segment (combined code+data)?

I wrote a simple Win16 program in NASM assembly. It works on Windows 3.11. (Source code: https://github.com/pts/mininasm/blob/master/demo/hello/helljw16.nasm .) When I tried to combine the code and ...
pts's user avatar
  • 1,923
12 votes
1 answer
1k views

What was the purpose of the ‘overlay number’ field in the MZ executable format?

Many materials covering the layout of MZ executables (RBIL, for example, and even a comment in MS-DOS 2.0 source code) describe the word at offset +0x1a as the ‘overlay number’, with the value zero ...
user3840170's user avatar
  • 23.1k
11 votes
1 answer
561 views

How can I properly execute and clean up after a DOS MZ executable loaded into memory with int21 function 4b01h?

Ralf Brown's Interrupt List describes a subvariant of the DOS int21/4Bh function with AL=01, where the program is loaded into memory and a PSP + stack are allocated for it, but the program is not ...
neuviemeporte's user avatar
8 votes
0 answers
436 views

What is the origin of executable compression?

According to the wikipedia article on the topic, the earliest executable compressor listed is Realia Spacemaker for IBM PC (since 1982, written by Robert B. K. Dewar, SM.COM, signature "MEMORY$&...
Leo B.'s user avatar
  • 19.1k
13 votes
3 answers
6k views

How can I extract the contents of a Windows 3.1 (16-bit) game EXE file?

I have a game that I can play in a Windows 3.1 emulator. Now I want to have a look "behind the scenes" of the game EXE file. I hope to find game graphics (sprites) there. But how can I ...
Drachenbauer's user avatar
12 votes
6 answers
6k views

How can I tell whether a DOS-looking exe. requires a 32-bit CPU to run?

Is there some simple method for determining if a DOS (or OS/2, or Windows etc.) binary (.exe or .dll) is 16-bit or 32-bit? The Linux file command just says "executable". I want to ...
Tomas By's user avatar
  • 2,082
2 votes
2 answers
1k views

Why does changing a DOS/Windows EXE cause it to not run? [closed]

If I hex-edit an EXE for DOS or Windows, by adding or removing some text for example, it will no longer run. If I just change a single char around to a different one, it may run. Is this some anti-...
Majdi Hasting's user avatar
3 votes
1 answer
531 views

Loading a Tandy CoCo or a Dragon 32 machine code program from cassette with multiple "name blocks"

For the Dragon 32 and the TRS-80 Color Computer I've found two documents describing how loading from cassette tape works:Dragon 32 doc, CoCo doc. They both say that a standard program consists of a ...
hippietrail's user avatar
  • 6,666
13 votes
1 answer
887 views

Why do PC DOS kernel files have the COM extension, even though they are not executable as COM files?

The PC DOS kernel is stored in files named IBMBIO.COM and IBMDOS.COM. Although they have the COM extension like executable files, neither of these files could actually be run from the command line, ...
user3840170's user avatar
  • 23.1k
23 votes
1 answer
4k views

How did large .COM files work?

An MS-DOS .com file is just raw code/data without header, thus no linking information, and was limited to be loaded into just one segment (64kB). That's the reason corrupted binaries would print "...
DarkDust's user avatar
  • 1,488
9 votes
2 answers
2k views

Are .COM executable binaries real mode or protected mode?

Windows and DOS binary executable files with the .EXE extension have an MZ header in them and nowadays also a PE header. But before these there used to also be .COM binary executable files and they ...
hippietrail's user avatar
  • 6,666
3 votes
2 answers
966 views

What file formats were used for binary executable files on later Sinclair ZX Spectrums?

The last official version of the Sinclair ZX Spectrum was the +3, released after the company was owned by Amstrad. It included a 3-inch floppy disk drive as used on other Amstrad computers. But even ...
hippietrail's user avatar
  • 6,666
18 votes
5 answers
4k views

What tools were used in late MS-DOS era for reverse engineering and patching binary executables?

In the late MS-DOS era, what were the state of the art software tools for reverse engineering and patching binaries, i.e. .exe and .com files? A simple list of the tools that were "state of the art", ...
AlphaCentauri's user avatar