public interface

IVirtualMemoryCodeUnit

implements ICodeUnit
com.pnfsoftware.jeb.core.units.IVirtualMemoryCodeUnit

Class Overview

Defines a unit that uses virtual memory addresses. When possible (debugger attached, manual force), the physical image base can be set.

Summary

Public Methods
abstract ByteOrder getByteOrder()
Indicate the byte Order (Big Endian or Little Endian)
abstract long getImageSize()
Retrieve the size of the image
abstract long getPhysicalImageDelta()
Retrieve the difference between Physical Image base as set by #setPhysicalImageBase(Long) and Virtual Image Base as retrieved by getVirtualImageBase().
abstract IProcessor<?> getProcessor()
TEMPORARY.
abstract long getVirtualImageBase()
Retrieve the virtual image base, indicated in the code container (most of the time a PE, ELF, or MachO container).
abstract void setPhysicalImageBase(long physicalImageBase)
Set the real (physical) image base for this piece of code.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.IInteractiveUnit
From interface com.pnfsoftware.jeb.core.units.IUnit
From interface com.pnfsoftware.jeb.core.units.code.ICodeUnit
From interface com.pnfsoftware.jeb.util.events.IEventSource

Public Methods

public abstract ByteOrder getByteOrder ()

Indicate the byte Order (Big Endian or Little Endian)

public abstract long getImageSize ()

Retrieve the size of the image

public abstract long getPhysicalImageDelta ()

Retrieve the difference between Physical Image base as set by #setPhysicalImageBase(Long) and Virtual Image Base as retrieved by getVirtualImageBase(). This value should only be used for rendering.

public abstract IProcessor<?> getProcessor ()

TEMPORARY.

public abstract long getVirtualImageBase ()

Retrieve the virtual image base, indicated in the code container (most of the time a PE, ELF, or MachO container). This virtual address is the reference for every memory access.

Returns
  • the virtual image base

public abstract void setPhysicalImageBase (long physicalImageBase)

Set the real (physical) image base for this piece of code. That address is the real address of the first loaded byte on a target device. The existence of this method implies that at most one physical address can be used at any time. (Typically, debuggers use this method to let code units know of where they are currently mapped, which in turn is used to better render assembly output.) Generally, the physical image address changes across different launches.

Parameters
physicalImageBase the physical image base of this code unit; the value 0 means that the physical address is unknown