Package ghidra.app.util.bin.format.ne

# Class InformationBlock

java.lang.Object
ghidra.app.util.bin.format.ne.InformationBlock

public class InformationBlock extends Object

A class to represent the Information Block defined in the Windows new-style executable.

...as defined in WINNT.H

     typedef struct _IMAGE_OS2_HEADER {      // OS/2 .EXE header
         WORD   ne_magic;                    // Magic number
         CHAR   ne_ver;                      // Version number
         CHAR   ne_rev;                      // Revision number
         WORD   ne_enttab;                   // Offset of Entry Table
         WORD   ne_cbenttab;                 // Number of bytes in Entry Table
         LONG   ne_crc;                      // Checksum of whole file
         WORD   ne_flags;                    // Flag word
         WORD   ne_autodata;                 // Automatic data segment number
         WORD   ne_heap;                     // Initial heap allocation
         WORD   ne_stack;                    // Initial stack allocation
         LONG   ne_csip;                     // Initial CS:IP setting
         LONG   ne_sssp;                     // Initial SS:SP setting
         WORD   ne_cseg;                     // Count of file segments
         WORD   ne_cmod;                     // Entries in Module Reference Table
         WORD   ne_cbnrestab;                // Size of non-resident name table
         WORD   ne_segtab;                   // Offset of Segment Table
         WORD   ne_rsrctab;                  // Offset of Resource Table
         WORD   ne_restab;                   // Offset of resident name table
         WORD   ne_modtab;                   // Offset of Module Reference Table
         WORD   ne_imptab;                   // Offset of Imported Names Table
         LONG   ne_nrestab;                  // Offset of Non-resident Names Table
         WORD   ne_cmovent;                  // Count of movable entries
         WORD   ne_align;                    // Segment alignment shift count
         WORD   ne_cres;                     // Count of resource segments
         BYTE   ne_exetyp;                   // Target Operating system
         BYTE   ne_flagsothers;              // Other .EXE flags
         WORD   ne_pretthunks;               // offset to return thunks
         WORD   ne_psegrefbytes;             // offset to segment ref. bytes
         WORD   ne_swaparea;                 // Minimum code swap area size
         WORD   ne_expver;                   // Expected Windows version number
     } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER;

See Also:
  - The NE EXE File Format
  - Segmented (New) .EXE File Header Format

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final byte`
  `EXETYPE_BOSS`
  Borland Operating System Services executable
  `static final byte`
  `EXETYPE_EUROPEAN_DOS_4`
  European DOS 4.x executable
  `static final byte`
  `EXETYPE_OS2`
  OS/2 executable
  `static final byte`
  `EXETYPE_PHARLAP_286_OS2`
  Pharlap 286 OS/2 executable
  `static final byte`
  `EXETYPE_PHARLAP_286_WIN`
  Pharlap 386 Windows executable
  `static final byte`
  `EXETYPE_RESERVED4`
  Reserved executable Type
  `static final byte`
  `EXETYPE_UNKNOWN`
  Unknown executable type
  `static final byte`
  `EXETYPE_WINDOWS`
  Windows executable
  `static final byte`
  `EXETYPE_WINDOWS_386`
  Windows 386 executable
  `static final byte`
  `FLAGS_APP_FULL_SCREEN`
  Is application full screen?
  `static final byte`
  `FLAGS_APP_LIBRARY_MODULE`
  `static final byte`
  `FLAGS_APP_LINK_ERRS`
  `static final byte`
  `FLAGS_APP_LOAD_CODE`
  Does the first segment contain code that loads the application?
  `static final byte`
  `FLAGS_APP_NONCONFORMING_PROG`
  `static final byte`
  `FLAGS_APP_WIN_PM_COMPATIBLE`
  Is application compatible with Windows Program Manager?
  `static final byte`
  `FLAGS_APP_WINDOWS_PM`
  Does application use Windows Program Manager?
  `static final byte`
  `FLAGS_PROG_80286`
  `static final byte`
  `FLAGS_PROG_80386`
  `static final byte`
  `FLAGS_PROG_8086`
  `static final byte`
  `FLAGS_PROG_80x87`
  `static final byte`
  `FLAGS_PROG_GLOBAL_INIT`
  `static final byte`
  `FLAGS_PROG_MULTIPLE_DATA`
  Program flags: multiple data segments
  `static final byte`
  `FLAGS_PROG_NO_AUTO_DATA`
  Program flags: no auto data segments
  `static final byte`
  `FLAGS_PROG_PROTECTED_MODE`
  `static final byte`
  `FLAGS_PROG_SINGLE_DATA`
  Program flags: single data segment
  `static final byte`
  `OTHER_FLAGS_GANGLOAD_AREA`
  Gangload area
  `static final byte`
  `OTHER_FLAGS_PROPORTIONAL_FONT`
  Proportional font
  `static final byte`
  `OTHER_FLAGS_PROTECTED_MODE`
  Protected mode
  `static final byte`
  `OTHER_FLAGS_SUPPORTS_LONG_NAMES`
  Supports long names

- ## Method Summary

  Modifier and Type
  Method
  Description
  `byte`
  `getApplicationFlags()`
  Returns the application flags.
  `String`
  `getApplicationFlagsAsString()`
  Returns a string representation of the application flags.
  `short`
  `getAutomaticDataSegment()`
  Returns the automatic data segment.
  `int`
  `getChecksum()`
  Returns the checksum.
  `short`
  `getEntryPointOffset()`
  Returns the offset portion of the entry point.
  `short`
  `getEntryPointSegment()`
  Returns the segment portion of the entry point.
  `short`
  `getExpectedWindowsVersion()`
  Returns the expected windows version.
  `short`
  `getInitialHeapSize()`
  Returns the initial heap size.
  `short`
  `getInitialStackSize()`
  Returns the initial stack size.
  `short`
  `getMagicNumber()`
  Returns the magic number.
  `short`
  `getMinCodeSwapSize()`
  Returns the minimum code swap size.
  `byte`
  `getOtherFlags()`
  Returns the other flags.
  `String`
  `getOtherFlagsAsString()`
  Returns a string representation of the other flags.
  `byte`
  `getProgramFlags()`
  Returns the program flags.
  `String`
  `getProgramFlagsAsString()`
  Returns a string representation of the program flags.
  `short`
  `getRevision()`
  Returns the revision number.
  `short`
  `getStackPointerOffset()`
  Returns the offset portion of the stack pointer.
  `short`
  `getStackPointerSegment()`
  Returns the segment portion of the stack pointer.
  `byte`
  `getTargetOpSys()`
  Returns the target operating system.
  `String`
  `getTargetOpSysAsString()`
  Returns a string representation of the target operating system.
  `short`
  `getVersion()`
  Returns the version number.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### FLAGS_PROG_NO_AUTO_DATA

    public static final byte FLAGS_PROG_NO_AUTO_DATA
    Program flags: no auto data segments
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_SINGLE_DATA

    public static final byte FLAGS_PROG_SINGLE_DATA
    Program flags: single data segment
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_MULTIPLE_DATA

    public static final byte FLAGS_PROG_MULTIPLE_DATA
    Program flags: multiple data segments
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_GLOBAL_INIT

    public static final byte FLAGS_PROG_GLOBAL_INIT
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_PROTECTED_MODE

    public static final byte FLAGS_PROG_PROTECTED_MODE
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_8086

    public static final byte FLAGS_PROG_8086
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_80286

    public static final byte FLAGS_PROG_80286
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_80386

    public static final byte FLAGS_PROG_80386
    See Also:
      - Constant Field Values

  - ### FLAGS_PROG_80x87

    public static final byte FLAGS_PROG_80x87
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_FULL_SCREEN

    public static final byte FLAGS_APP_FULL_SCREEN
    Is application full screen?
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_WIN_PM_COMPATIBLE

    public static final byte FLAGS_APP_WIN_PM_COMPATIBLE
    Is application compatible with Windows Program Manager?
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_WINDOWS_PM

    public static final byte FLAGS_APP_WINDOWS_PM
    Does application use Windows Program Manager?
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_LOAD_CODE

    public static final byte FLAGS_APP_LOAD_CODE
    Does the first segment contain code that loads the application?
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_LINK_ERRS

    public static final byte FLAGS_APP_LINK_ERRS
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_NONCONFORMING_PROG

    public static final byte FLAGS_APP_NONCONFORMING_PROG
    See Also:
      - Constant Field Values

  - ### FLAGS_APP_LIBRARY_MODULE

    public static final byte FLAGS_APP_LIBRARY_MODULE
    See Also:
      - Constant Field Values

  - ### EXETYPE_UNKNOWN

    public static final byte EXETYPE_UNKNOWN
    Unknown executable type
    See Also:
      - Constant Field Values

  - ### EXETYPE_OS2

    public static final byte EXETYPE_OS2
    OS/2 executable
    See Also:
      - Constant Field Values

  - ### EXETYPE_WINDOWS

    public static final byte EXETYPE_WINDOWS
    Windows executable
    See Also:
      - Constant Field Values

  - ### EXETYPE_EUROPEAN_DOS_4

    public static final byte EXETYPE_EUROPEAN_DOS_4
    European DOS 4.x executable
    See Also:
      - Constant Field Values

  - ### EXETYPE_RESERVED4

    public static final byte EXETYPE_RESERVED4
    Reserved executable Type
    See Also:
      - Constant Field Values

  - ### EXETYPE_WINDOWS_386

    public static final byte EXETYPE_WINDOWS_386
    Windows 386 executable
    See Also:
      - Constant Field Values

  - ### EXETYPE_BOSS

    public static final byte EXETYPE_BOSS
    Borland Operating System Services executable
    See Also:
      - Constant Field Values

  - ### EXETYPE_PHARLAP_286_OS2

    public static final byte EXETYPE_PHARLAP_286_OS2
    Pharlap 286 OS/2 executable
    See Also:
      - Constant Field Values

  - ### EXETYPE_PHARLAP_286_WIN

    public static final byte EXETYPE_PHARLAP_286_WIN
    Pharlap 386 Windows executable
    See Also:
      - Constant Field Values

  - ### OTHER_FLAGS_SUPPORTS_LONG_NAMES

    public static final byte OTHER_FLAGS_SUPPORTS_LONG_NAMES
    Supports long names
    See Also:
      - Constant Field Values

  - ### OTHER_FLAGS_PROTECTED_MODE

    public static final byte OTHER_FLAGS_PROTECTED_MODE
    Protected mode
    See Also:
      - Constant Field Values

  - ### OTHER_FLAGS_PROPORTIONAL_FONT

    public static final byte OTHER_FLAGS_PROPORTIONAL_FONT
    Proportional font
    See Also:
      - Constant Field Values

  - ### OTHER_FLAGS_GANGLOAD_AREA

    public static final byte OTHER_FLAGS_GANGLOAD_AREA
    Gangload area
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getMagicNumber

    public short getMagicNumber()
    Returns the magic number.
    Returns:
      the magic number

  - ### getVersion

    public short getVersion()
    Returns the version number.
    Returns:
      the version number

  - ### getRevision

    public short getRevision()
    Returns the revision number.
    Returns:
      the revision number

  - ### getChecksum

    public int getChecksum()
    Returns the checksum.
    Returns:
      the checksum

  - ### getInitialHeapSize

    public short getInitialHeapSize()
    Returns the initial heap size.
    Returns:
      the initial heap size

  - ### getInitialStackSize

    public short getInitialStackSize()
    Returns the initial stack size.
    Returns:
      the initial stack size

  - ### getTargetOpSys

    public byte getTargetOpSys()
    Returns the target operating system.
    Returns:
      the target operating system

  - ### getMinCodeSwapSize

    public short getMinCodeSwapSize()
    Returns the minimum code swap size.
    Returns:
      the minimum code swap size

  - ### getExpectedWindowsVersion

    public short getExpectedWindowsVersion()
    Returns the expected windows version.
    Returns:
      the expected windows version

  - ### getAutomaticDataSegment

    public short getAutomaticDataSegment()
    Returns the automatic data segment.
    Returns:
      the automatic data segment

  - ### getOtherFlags

    public byte getOtherFlags()
    Returns the other flags.
    Returns:
      the other flags

  - ### getOtherFlagsAsString

    public String getOtherFlagsAsString()
    Returns a string representation of the other flags.
    Returns:
      a string representation of the other flags

  - ### getProgramFlags

    public byte getProgramFlags()
    Returns the program flags.
    Returns:
      the program flags

  - ### getApplicationFlags

    public byte getApplicationFlags()
    Returns the application flags.
    Returns:
      the application flags

  - ### getEntryPointSegment

    public short getEntryPointSegment()
    Returns the segment portion of the entry point.
    Returns:
      the segment portion of the entry point

  - ### getEntryPointOffset

    public short getEntryPointOffset()
    Returns the offset portion of the entry point.
    Returns:
      the offset portion of the entry point

  - ### getStackPointerSegment

    public short getStackPointerSegment()
    Returns the segment portion of the stack pointer.
    Returns:
      the segment portion of the stack pointer

  - ### getStackPointerOffset

    public short getStackPointerOffset()
    Returns the offset portion of the stack pointer.
    Returns:
      the offset portion of the stack pointer

  - ### getTargetOpSysAsString

    public String getTargetOpSysAsString()
    Returns a string representation of the target operating system.
    Returns:
      a string representation of the target operating system

  - ### getApplicationFlagsAsString

    public String getApplicationFlagsAsString()
    Returns a string representation of the application flags.
    Returns:
      a string representation of the application flags

  - ### getProgramFlagsAsString

    public String getProgramFlagsAsString()
    Returns a string representation of the program flags.
    Returns:
      a string representation of the program flags