Uses of Interface
com.pnfsoftware.jeb.core.units.code.asm.memory.IVirtualMemory
Packages that use IVirtualMemory
Package
Description
Types used to implement and access data identifiers, parsers, code analyzers, disassemblers,
decompilers, and debuggers.
This package and sub-packages contains types used by the native code analysis pipeline, including
gendec
(the generic decompiler).Types relating to the disassembler engine.
This package and its sub-packages contain the types used to access
gendec
, JEB's generic
decompiler.Types used to create and access
gendec
's IR (Intermediate Representation).IR emulator facility.
Native code items, including code items and data items.
Types used to represent a virtual memory used when analyzing native code.
Types used to define and represent processors' instructions, operands, and registers.
Types used during the generation of native code disassembly.
Types used by debugger plugins.
Types specific to code objects, such as Windows PE, Linux ELF, or Apple Mach-O.
-
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units
Methods in com.pnfsoftware.jeb.core.units that return IVirtualMemoryModifier and TypeMethodDescriptionINativeCodeUnit.getMemory()
Retrieve the virtual memory managed used by this unit.Methods in com.pnfsoftware.jeb.core.units with parameters of type IVirtualMemoryModifier and TypeMethodDescriptionvoid
INativeCodeUnit.setMemory
(IVirtualMemory mem) Optionally set the current optional virtual memory (VM) used by this unit. -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm
Methods in com.pnfsoftware.jeb.core.units.code.asm that return IVirtualMemoryModifier and TypeMethodDescriptionIMachineContext.getMemory()
Get access to the memory.INativeContext.getMemory()
INativeDisassemblerPlugin.getMemory
(IUnitCreator parent) -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.analyzer
Methods in com.pnfsoftware.jeb.core.units.code.asm.analyzer that return IVirtualMemoryModifier and TypeMethodDescriptionINativeCodeAnalyzer.getMemory()
Retrieve a reference to the virtual memory.Constructors in com.pnfsoftware.jeb.core.units.code.asm.analyzer with parameters of type IVirtualMemory -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return IVirtualMemory -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return IVirtualMemoryModifier and TypeMethodDescriptionEState.getBadMemory()
Retrieve the optional 'bad data' VM.EState.getMemory()
PreRoutineInvocationDetails.getVirtualMemory()
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type IVirtualMemoryModifier and TypeMethodDescriptionvoid
EState.setBadMemory
(IVirtualMemory bad_vm) Set a specific VM used to contain information about areas of memory that are known to contain 'bad' data.void
EState.setMemory
(IVirtualMemory vm) -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator that return IVirtualMemory -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.items
Methods in com.pnfsoftware.jeb.core.units.code.asm.items with parameters of type IVirtualMemoryModifier and TypeMethodDescriptionstatic INativeStringItem
DataStringUtil.createFromMemory
(INativeDataAnalyzer dataParser, ILabelManager labelman, IVirtualMemory mem, long address, long addressMax, StringEncoding stringType, int minChars, int maxChars) Parse a memory area as a string.static String
DataStringUtil.determineValue
(INativeStringItem item, IVirtualMemory mem, boolean reEncodingValidation) Determine the value of a given string data item.static String
DataStringUtil.determineValue
(StringEncoding st, IVirtualMemory mem, long address, int size, boolean reEncodingValidation) Determine the value of a string.static String
DataStringUtil.getStringAt
(IVirtualMemory mem, long address, int minChars, int maxChars) Attempt to create a string from the memory bytes located at the provided address.static String
DataStringUtil.getStringAt
(IVirtualMemory mem, long address, int minChars, int maxChars, StringEncoding[] atype) Attempt to create a string from the memory bytes located at the provided address.static StringEntry
DataStringUtil.getStringAt
(IVirtualMemory mem, long address, long addressMax, int minChars, int maxChars) Attempt to create a string from the memory bytes located at the provided address.static boolean
DataStringUtil.isSafeAsciiStringAt
(IVirtualMemory mem, long address, int minChars, int maxChars) static boolean
DataStringUtil.isSafeAsciiStringAt
(IVirtualMemory mem, long address, StringEncoding st, int minChars, int maxChars) Indicate if a data in memory is a safe ASCII (meaning containing only printable character in the ASCII range).static boolean
DataStringUtil.isValidStringAt
(IVirtualMemory mem, long address, int minChars, int maxChars) Determine whether the memory bytes at the provided address look like a string. -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.memory
Subinterfaces of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.memoryModifier and TypeInterfaceDescriptioninterface
Ashim
is a VM object wrapping another virtual memory, in order to allow temporary write modifications.Classes in com.pnfsoftware.jeb.core.units.code.asm.memory that implement IVirtualMemoryModifier and TypeClassDescriptionclass
A skeleton implementation for virtual memory classes.Methods in com.pnfsoftware.jeb.core.units.code.asm.memory that return IVirtualMemoryModifier and TypeMethodDescriptionstatic IVirtualMemory
VirtualMemoryUtil.createMemory
(int spaceBits, int pageBits, Endianness standardEndianness) Facade factory method returning a concrete, private implementation of an efficient page-based virtual memory.IVirtualMemory.duplicate()
Make a deep copy of this virtual memory.IVirtualMemoryShim.duplicate
(boolean fullDuplication) Duplicate with options.IVirtualMemoryShim.getUnderlyingMemory()
Retrieve the underlying VM wrapped by the shim.Methods in com.pnfsoftware.jeb.core.units.code.asm.memory with parameters of type IVirtualMemoryModifier and TypeMethodDescriptionstatic long
VirtualMemoryUtil.allocate
(IVirtualMemory mem, long start, int size, int protection) Search an available range and allocate at least the requested amount of bytes.static int
VirtualMemoryUtil.allocateFillGaps
(IVirtualMemory mem, long address, int size, int protection) Allocate a memory range, filling gaps in between already allocated pages if needed.static boolean
VirtualMemoryUtil.deallocate
(IVirtualMemory mem, long addr, int size) Free a range previously allocated withallocate
.static byte[]
VirtualMemoryUtil.dump
(IVirtualMemory vm, long addr, long addrEnd) Dump a contiguous memory range of memory to a byte array.static void
VirtualMemoryUtil.dump
(IVirtualMemory vm, long addr, long addrEnd, byte[] dst, int dstOffset) Dump a contiguous memory range of memory to a buffer.static void
VirtualMemoryUtil.dumpToImageFiles
(IVirtualMemory vm, File folder) Dump a virtual memory to files in a folder.static void
VirtualMemoryUtil.dumpToImageFiles
(IVirtualMemory vm, File folder, String pfx, String sfx) Dump a virtual memory to files in a folder.static long
VirtualMemoryUtil.findAvailableRange
(IVirtualMemory mem, long start, int size) Search for an available memory range.static long
VirtualMemoryUtil.findByte
(IVirtualMemory mem, long address, long lastAddress, int val) Search for a single byte of memory.static long
VirtualMemoryUtil.findBytes
(IVirtualMemory mem, boolean bypassProtection, long address, long lastAddress, byte[] pattern, byte[] patternMask) Search for bytes in memory, with an optional binary mask.static IVirtualMemoryShim
VirtualMemoryUtil.getCopyOnWriteShim
(IVirtualMemory mem) Create a copy-on-write shim of the provided virtual memory, if possible.static boolean
VirtualMemoryUtil.isPageAllocated
(IVirtualMemory mem, long address) Verify if a page was allocated (regardless of protection rights on the page).static int
VirtualMemoryUtil.read
(IVirtualMemory mem, long address) Read a single byte and perform a zero-extension.static Long
VirtualMemoryUtil.readAsLongSafe
(IVirtualMemory mem, long address, int size) Read an integer (byte, short, int or long) and converts it to Long.static Long
VirtualMemoryUtil.readAsLongSafe
(IVirtualMemory mem, Endianness endianness, long address, int size) VirtualMemoryUtil.readAsUnsignedLongSafe
(IVirtualMemory mem, long address, int size) Read an integer (byte, short, int or long) and zero extend it to Long.static Long
VirtualMemoryUtil.readAsUnsignedLongSafe
(IVirtualMemory mem, Endianness endianness, long address, int size) static boolean
VirtualMemoryUtil.readBEIntSafe
(IVirtualMemory mem, long address, int[] out) Read a big-endian 32-bit integer.static boolean
VirtualMemoryUtil.readBELongSafe
(IVirtualMemory mem, long address, long[] out) Read a big-endian 64-bit integer.static boolean
VirtualMemoryUtil.readBEShortSafe
(IVirtualMemory mem, long address, short[] out) Read a big-endian 16-bit integer.static boolean
VirtualMemoryUtil.readBooleans
(IVirtualMemory mem, long address, boolean[] array, int offset, int count) Read an array of booleans from memory.static boolean
VirtualMemoryUtil.readBytes
(IVirtualMemory mem, long address, byte[] array, int offset, int count) Read an array of bytes from memory.static boolean
VirtualMemoryUtil.readByteSafe
(IVirtualMemory mem, long address, byte[] out) Read a byte safely (this method does not raiseMemoryException
).static int
VirtualMemoryUtil.readBytesSafe
(IVirtualMemory mem, long address, int size, byte[] dst, int dstOffset, boolean bypassProtection) Safely read at most the requested amount of bytes.static int
VirtualMemoryUtil.readBytesSafe
(IVirtualMemory mem, long address, int size, byte[] dst, int dstOffset, int protection) Safely read at most the requested amount of bytes.static boolean
VirtualMemoryUtil.readChars
(IVirtualMemory mem, long address, char[] array, int offset, int count) Read an array of chars from memory.static boolean
VirtualMemoryUtil.readDoubles
(IVirtualMemory mem, long address, double[] array, int offset, int count) Read an array of doubles from memory.static boolean
VirtualMemoryUtil.readFloats
(IVirtualMemory mem, long address, float[] array, int offset, int count) Read an array of floats from memory.static boolean
VirtualMemoryUtil.readInts
(IVirtualMemory mem, long address, int[] array, int offset, int count) Read an array of ints from memory.static boolean
VirtualMemoryUtil.readIntSafe
(Endianness end, IVirtualMemory mem, long address, int[] out) Read a little-endian 32-bit integer using a specific byte ordering.static boolean
VirtualMemoryUtil.readLEIntSafe
(IVirtualMemory mem, long address, int[] out) Read a little-endian 32-bit integer.static boolean
VirtualMemoryUtil.readLELongSafe
(IVirtualMemory mem, long address, long[] out) Read a little-endian 64-bit integer.static boolean
VirtualMemoryUtil.readLEShortSafe
(IVirtualMemory mem, long address, short[] out) Read a little-endian 16-bit integer.static boolean
VirtualMemoryUtil.readLongs
(IVirtualMemory mem, long address, long[] array, int offset, int count) Read an array of longs from memory.static boolean
VirtualMemoryUtil.readLongSafe
(Endianness end, IVirtualMemory mem, long address, long[] out) Read a little-endian 64-bit integer using a specific byte ordering.static String
VirtualMemoryUtil.readNullTerminatedStringSafe
(IVirtualMemory mem, long address, int maxSize) Read from memory a series of ASCII characters, terminated by a null byte, and build the corresponding String.static boolean
VirtualMemoryUtil.readSafe
(IVirtualMemory mem, long address, byte[] data) Read an array of bytes from memory (this method does not raiseMemoryException
).static boolean
VirtualMemoryUtil.readShorts
(IVirtualMemory mem, long address, short[] array, int offset, int count) Read an array of shorts from memory.static boolean
VirtualMemoryUtil.readShortSafe
(Endianness end, IVirtualMemory mem, long address, short[] out) Read a little-endian 16-bit integer using a specific byte ordering.static boolean
VirtualMemoryUtil.writeBooleans
(IVirtualMemory mem, long address, boolean[] array, int offset, int count) Write an array of booleans to memory.static boolean
VirtualMemoryUtil.writeBytes
(IVirtualMemory mem, long address, byte[] array, int offset, int count) Write an array of bytes to memory.static boolean
VirtualMemoryUtil.writeByteSafe
(IVirtualMemory mem, long address, byte v) Write an 8-bit integer.static boolean
VirtualMemoryUtil.writeChars
(IVirtualMemory mem, long address, char[] array, int offset, int count) Write an array of chars to memory.static boolean
VirtualMemoryUtil.writeDoubles
(IVirtualMemory mem, long address, double[] array, int offset, int count) Write an array of doubles to memory.static boolean
VirtualMemoryUtil.writeFloats
(IVirtualMemory mem, long address, float[] array, int offset, int count) Write an array of floats to memory.static boolean
VirtualMemoryUtil.writeInts
(IVirtualMemory mem, long address, int[] array, int offset, int count) Write an array of ints to memory.static boolean
VirtualMemoryUtil.writeIntSafe
(Endianness end, IVirtualMemory mem, long address, int v) Write a little-endian 32-bit integer using a specific byte ordering.static boolean
VirtualMemoryUtil.writeLEIntSafe
(IVirtualMemory mem, long address, int v) Write a little-endian 32-bit integer.static boolean
VirtualMemoryUtil.writeLELongSafe
(IVirtualMemory mem, long address, long v) Write a little-endian 64-bit integer.static boolean
VirtualMemoryUtil.writeLEShortSafe
(IVirtualMemory mem, long address, short v) Write a little-endian 16-bit integer.static boolean
VirtualMemoryUtil.writeLongs
(IVirtualMemory mem, long address, long[] array, int offset, int count) Write an array of longs to memory.static boolean
VirtualMemoryUtil.writeLongSafe
(Endianness end, IVirtualMemory mem, long address, long v) Write a little-endian 64-bit integer using a specific byte ordering.static boolean
VirtualMemoryUtil.writeSafe
(IVirtualMemory mem, long address, byte[] data) Write an array of bytes to memory (this method does not raiseMemoryException
).static boolean
VirtualMemoryUtil.writeShorts
(IVirtualMemory mem, long address, short[] array, int offset, int count) Write an array of shorts to memory.static boolean
VirtualMemoryUtil.writeShortSafe
(Endianness end, IVirtualMemory mem, long address, short v) Write a little-endian 16-bit integer using a specific byte ordering.Constructors in com.pnfsoftware.jeb.core.units.code.asm.memory with parameters of type IVirtualMemoryModifierConstructorDescriptionCreate a reader.VMWriter
(IVirtualMemory vm, long addr, INativeType t) Create a writer for the provided. -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.processor
Methods in com.pnfsoftware.jeb.core.units.code.asm.processor with parameters of type IVirtualMemoryModifier and TypeMethodDescriptionAbstractProcessor.parseAt
(IVirtualMemory vm, long address) IProcessor.parseAt
(IVirtualMemory vm, long address) Parse a single instruction at the specified address in memory. -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.asm.render
Methods in com.pnfsoftware.jeb.core.units.code.asm.render that return IVirtualMemoryConstructors in com.pnfsoftware.jeb.core.units.code.asm.render with parameters of type IVirtualMemory -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.debug
Subinterfaces of IVirtualMemory in com.pnfsoftware.jeb.core.units.code.debugModifier and TypeInterfaceDescriptioninterface
Extension of the virtual memory interface providing additional methods useful in the context of a process controlled by a debugger. -
Uses of IVirtualMemory in com.pnfsoftware.jeb.core.units.codeobject
Fields in com.pnfsoftware.jeb.core.units.codeobject declared as IVirtualMemoryModifier and TypeFieldDescriptionfinal IVirtualMemory
ELFStandardRelocOperations.mem
IELFRelocationApplicator.RelocatedFile.mem
Methods in com.pnfsoftware.jeb.core.units.codeobject that return IVirtualMemoryModifier and TypeMethodDescriptionprotected IVirtualMemory
AbstractCodeObjectUnit.createSuitableMemory()
Create a virtual memory suitable to map this code object.AbstractCodeObjectUnit.getRawMemoryMappedImage()
ICodeObjectUnit.getRawMemoryMappedImage()
Retrieve a raw mapping of the code object.Methods in com.pnfsoftware.jeb.core.units.codeobject with parameters of type IVirtualMemoryModifier and TypeMethodDescriptionprotected abstract boolean
AbstractCodeObjectUnit.applyRelocations
(IVirtualMemory mem, long base, ILinkInfoProvider linkInfoPrv) Relocate a mapped code object.boolean
AbstractCodeObjectUnit.map
(IVirtualMemory mem, long wantedBase, boolean applyRelocations, ILinkInfoProvider linkInfoPrv) boolean
ICodeObjectUnit.map
(IVirtualMemory mem, long wantedBase, boolean applyRelocations, ILinkInfoProvider linkInfoPrv) Map this object file onto virtual memory.protected boolean
AbstractCodeObjectUnit.mapRawNoReloc
(IVirtualMemory mem, long base) Map the object's segments at the provided base without applying relocations.long
ILinkInfoProvider.resolveImportedSymbol
(String name, int mode, IVirtualMemory vm, IELFUnit elf) Constructors in com.pnfsoftware.jeb.core.units.codeobject with parameters of type IVirtualMemoryModifierConstructorDescriptionRelocatedFile
(IELFUnit elfUnit, IVirtualMemory mem, long actualImageBase)