Package ghidra.app.util.opinion

# Class NeLoader

java.lang.Object
ghidra.app.util.opinion.AbstractProgramLoader
ghidra.app.util.opinion.AbstractLibrarySupportLoader
ghidra.app.util.opinion.AbstractOrdinalSupportLoader
ghidra.app.util.opinion.NeLoader

All Implemented Interfaces:
  `Loader`, `ExtensionPoint`, `Comparable<Loader>`

public class NeLoader extends AbstractOrdinalSupportLoader
A `Loader` for processing Microsoft New Executable (NE) files.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader

  `AbstractLibrarySupportLoader.FileSystemSearchPath`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NE_NAME`

  ### Fields inherited from class ghidra.app.util.opinion.AbstractOrdinalSupportLoader

  `ORDINAL_LOOKUP_OPTION_NAME`

  ### Fields inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader

  `DEPTH_OPTION_NAME, LIBRARY_DEST_FOLDER_OPTION_NAME, LINK_EXISTING_OPTION_NAME, LINK_SEARCH_FOLDER_OPTION_NAME, LOCAL_LIBRARY_OPTION_NAME, SYSTEM_LIBRARY_OPTION_NAME`

  ### Fields inherited from class ghidra.app.util.opinion.AbstractProgramLoader

  `ANCHOR_LABELS_OPTION_NAME, APPLY_LABELS_OPTION_NAME`

  ### Fields inherited from interface ghidra.app.util.opinion.Loader

  `COMMAND_LINE_ARG_PREFIX, OPTIONS_PROJECT_SAVE_STATE_KEY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NeLoader()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Collection<LoadSpec>`
  `findSupportedLoadSpecs(ByteProvider provider)`
  If this `Loader` supports loading the given `ByteProvider`, this methods returns a `Collection` of all supported `LoadSpec`s that contain discovered load specification information that this `Loader` will need to load.
  `String`
  `getName()`
  Gets the `Loader`'s name, which is used both for display purposes, and to identify the `Loader` in the opinion files.
  `protected boolean`
  `isCaseInsensitiveLibraryFilenames()`
  Specifies if the library filenames specified by this loader should be exact case match or case-insensitive.
  `protected boolean`
  `isOptionalLibraryFilenameExtensions()`
  Specifies if this loader can refer to library filenames without filename extensions.
  `void`
  `load(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program prog, TaskMonitor monitor, MessageLog log)`
  Loads bytes in a particular format into the given `Program`.

  ### Methods inherited from class ghidra.app.util.opinion.AbstractOrdinalSupportLoader

  `getDefaultOptions, postLoadCleanup, postLoadProgramFixups, processLibrary, shouldLoadLibrary, shouldSearchAllPaths, validateOptions`

  ### Methods inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader

  `createLibraryByteProvider, getCustomLibrarySearchPaths, getLibraryDestinationFolderPath, getLibraryDestinationSearchFolder, getLibraryLoadDepth, getLinkSearchFolder, getTier, getTierPriority, isLinkExistingLibraries, isLoadLocalLibraries, isLoadSystemLibraries, loadProgram, loadProgramInto, matchSupportedLoadSpec, resolveLibraryFile`

  ### Methods inherited from class ghidra.app.util.opinion.AbstractProgramLoader

  `concatenatePaths, createDefaultMemoryBlocks, createProgram, generateBlockName, getLanguageService, load, loadInto, markAsFunction, release, setProgramProperties, shouldApplyProcessorLabelsByDefault`

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

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

  ### Methods inherited from interface ghidra.app.util.opinion.Loader

  `compareTo, getPreferredFileName, loadsIntoNewFolder, supportsLoadIntoProgram, supportsLoadIntoProgram`

- ## Field Details

  - ### NE_NAME

    public static final String NE_NAME
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### NeLoader

    public NeLoader()

- ## Method Details

  - ### findSupportedLoadSpecs

    public Collection<LoadSpec> findSupportedLoadSpecs(ByteProvider provider) throws IOException
    Description copied from interface: `Loader`
    If this `Loader` supports loading the given `ByteProvider`, this methods returns a `Collection` of all supported `LoadSpec`s that contain discovered load specification information that this `Loader` will need to load. If this `Loader` cannot support loading the given `ByteProvider`, an empty `Collection` is returned.
    Parameters:
      `provider` - The bytes being loaded.
    Returns:
      A `Collection` of `LoadSpec`s that this `Loader` supports loading, or an empty `Collection` if this `Loader` doesn't support loading the given `ByteProvider`.
    Throws:
      `IOException` - if there was an IO-related issue finding the `LoadSpec`s.

  - ### load

    public void load(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) throws IOException, CancelledException
    Description copied from class: `AbstractLibrarySupportLoader`
    Loads bytes in a particular format into the given `Program`.
    Specified by:
      `load` in class `AbstractLibrarySupportLoader`
    Parameters:
      `provider` - The bytes to load.
      `loadSpec` - The `LoadSpec` to use during load.
      `options` - The load options.
      `prog` - The `Program` to load into.
      `monitor` - A cancelable task monitor.
      `log` - The message log.
    Throws:
      `IOException` - if there was an IO-related problem loading.
      `CancelledException` - if the user cancelled the load.

  - ### isOptionalLibraryFilenameExtensions

    protected boolean isOptionalLibraryFilenameExtensions()
    Description copied from class: `AbstractLibrarySupportLoader`
    Specifies if this loader can refer to library filenames without filename extensions.

    Derived loader classes should override this method if library filename extensions are optional. If they are required, there is no need to override this method.

    Overrides:
      `isOptionalLibraryFilenameExtensions` in class `AbstractLibrarySupportLoader`
    Returns:
      True if library filename extensions are optional; otherwise, false

  - ### isCaseInsensitiveLibraryFilenames

    protected boolean isCaseInsensitiveLibraryFilenames()
    Description copied from class: `AbstractLibrarySupportLoader`
    Specifies if the library filenames specified by this loader should be exact case match or case-insensitive.

    Derived loader classes should override this method and specify if the OS that normally handles this type of binary is case-insensitive.

    Overrides:
      `isCaseInsensitiveLibraryFilenames` in class `AbstractLibrarySupportLoader`
    Returns:
      True if case-insensitive or false if case-sensitive.

  - ### getName

    public String getName()
    Description copied from interface: `Loader`
    Gets the `Loader`'s name, which is used both for display purposes, and to identify the `Loader` in the opinion files.
    Returns:
      The `Loader`'s name.