readexe is a command-line tool for inspecting various Microsoft PC EXE formats.
| Status | Magic | Type |
|---|---|---|
| ✅ | MZ |
MS-DOS Executable |
| ❕ | NE |
16-bit New Executable |
| ❌ | LE/LX |
32-bit Linear Executable (.vxd/.386) |
| ❌ | PE |
32/64-bit Portable Executable |
NE format is the current work-in-progress.
readexe uses the GNU Autotools (for now) to build. You'll need to generate the distributed build artifacts (the configure script itself, et. al.) before you can use them. Use the include autogen.sh script to generate the build artifacts. You can build readexe using the following:
./autogen.sh
./configure
make
The previous Makefile has been renamed Makefile.unix and may be removed in the future, or may be rolled back to.
If your OS does not have the BSD err() family functions, add -I. to CFLAGS in Makefile.unix or in the CFLAGS envionment variable when invoking ./configure.
If you are building for MS-DOS or FreeDOS using GCC-IA16 or Sourcery CodeBench Lite for IA16, use Makefile.dos like so:
make -f Makefile.dos
Attempting to make DOS builds using other compilers is likely to fail. readexe is written using ISO C99 and ISO C11 features that the majority of DOS compilers predate. Modern DJGPP releases, also built upon GCC, can produce 32-bit extended DOS builds.
Building for Windows CE is experimental. You will need to use the CeGCC toolchain, I recommend the Enlyze fork (as it is a commercial fork started in 2024 and as well-supported as one will get) - https://github.com/enlyze/cegcc-build
An output sample can be found here.