Skip to content
/ win16ne Public

Win16 NE (New Executable) parser & disassembler

Notifications You must be signed in to change notification settings

qnighy/win16ne

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parser & Disassembler for 16bit Windows target

This is a parser and a disassembler for 16bit Windows target, known as New Executable (NE).

What is NE?

The "New Executable" format is an old format, which old 16bit Windows OSes (1.0 to 3.1x) have used and 32bit OSes have supported through emulation (WoW32).

This is different from PE (Portable Executable) or the plain MZ (DOS) format.

How to check if a file is in the NE format?

  • NE file has the "MZ" magic at the beginning of the file
    • However, the converse doesn't hold. DOS executables and PE executables have "MZ" too.
  • NE file has the "NE" magic at the beginning of the "new header", the place of which is indicated by a little endian 32-bit integer at 0x3C from the beginning of the file.
    • DOE executables lacks this "new header" and PE executables have "PE" there.

How to obtain NE executables?

Prerequisites

  • Recent Rust compiler

Usage

$ cargo run path/to/something.exe
$ cargo run path/to/something.dll

About

Win16 NE (New Executable) parser & disassembler

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages