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:
  • Field Details

    • FLAGS_PROG_NO_AUTO_DATA

      public static final byte FLAGS_PROG_NO_AUTO_DATA
      Program flags: no auto data segments
      See Also:
    • FLAGS_PROG_SINGLE_DATA

      public static final byte FLAGS_PROG_SINGLE_DATA
      Program flags: single data segment
      See Also:
    • FLAGS_PROG_MULTIPLE_DATA

      public static final byte FLAGS_PROG_MULTIPLE_DATA
      Program flags: multiple data segments
      See Also:
    • FLAGS_PROG_GLOBAL_INIT

      public static final byte FLAGS_PROG_GLOBAL_INIT
      See Also:
    • FLAGS_PROG_PROTECTED_MODE

      public static final byte FLAGS_PROG_PROTECTED_MODE
      See Also:
    • FLAGS_PROG_8086

      public static final byte FLAGS_PROG_8086
      See Also:
    • FLAGS_PROG_80286

      public static final byte FLAGS_PROG_80286
      See Also:
    • FLAGS_PROG_80386

      public static final byte FLAGS_PROG_80386
      See Also:
    • FLAGS_PROG_80x87

      public static final byte FLAGS_PROG_80x87
      See Also:
    • FLAGS_APP_FULL_SCREEN

      public static final byte FLAGS_APP_FULL_SCREEN
      Is application full screen?
      See Also:
    • FLAGS_APP_WIN_PM_COMPATIBLE

      public static final byte FLAGS_APP_WIN_PM_COMPATIBLE
      Is application compatible with Windows Program Manager?
      See Also:
    • FLAGS_APP_WINDOWS_PM

      public static final byte FLAGS_APP_WINDOWS_PM
      Does application use Windows Program Manager?
      See Also:
    • FLAGS_APP_LOAD_CODE

      public static final byte FLAGS_APP_LOAD_CODE
      Does the first segment contain code that loads the application?
      See Also:
    • FLAGS_APP_NONCONFORMING_PROG

      public static final byte FLAGS_APP_NONCONFORMING_PROG
      See Also:
    • FLAGS_APP_LIBRARY_MODULE

      public static final byte FLAGS_APP_LIBRARY_MODULE
      See Also:
    • EXETYPE_UNKNOWN

      public static final byte EXETYPE_UNKNOWN
      Unknown executable type
      See Also:
    • EXETYPE_OS2

      public static final byte EXETYPE_OS2
      OS/2 executable
      See Also:
    • EXETYPE_WINDOWS

      public static final byte EXETYPE_WINDOWS
      Windows executable
      See Also:
    • EXETYPE_EUROPEAN_DOS_4

      public static final byte EXETYPE_EUROPEAN_DOS_4
      European DOS 4.x executable
      See Also:
    • EXETYPE_RESERVED4

      public static final byte EXETYPE_RESERVED4
      Reserved executable Type
      See Also:
    • EXETYPE_WINDOWS_386

      public static final byte EXETYPE_WINDOWS_386
      Windows 386 executable
      See Also:
    • EXETYPE_BOSS

      public static final byte EXETYPE_BOSS
      Borland Operating System Services executable
      See Also:
    • EXETYPE_PHARLAP_286_OS2

      public static final byte EXETYPE_PHARLAP_286_OS2
      Pharlap 286 OS/2 executable
      See Also:
    • EXETYPE_PHARLAP_286_WIN

      public static final byte EXETYPE_PHARLAP_286_WIN
      Pharlap 386 Windows executable
      See Also:
    • OTHER_FLAGS_SUPPORTS_LONG_NAMES

      public static final byte OTHER_FLAGS_SUPPORTS_LONG_NAMES
      Supports long names
      See Also:
    • OTHER_FLAGS_PROTECTED_MODE

      public static final byte OTHER_FLAGS_PROTECTED_MODE
      Protected mode
      See Also:
    • OTHER_FLAGS_PROPORTIONAL_FONT

      public static final byte OTHER_FLAGS_PROPORTIONAL_FONT
      Proportional font
      See Also:
    • OTHER_FLAGS_GANGLOAD_AREA

      public static final byte OTHER_FLAGS_GANGLOAD_AREA
      Gangload area
      See Also:
  • 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