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 TypeMethodDescriptionvoidINativeCodeUnit.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
Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir declared as IVirtualMemoryMethods 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 TypeMethodDescriptionvoidEState.setBadMemory(IVirtualMemory bad_vm) Set a specific VM used to contain information about areas of memory that are known to contain 'bad' data.voidEState.setMemory(IVirtualMemory vm) Constructors in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type IVirtualMemoryModifierConstructorDescriptionStateInfo(Map<Integer, IEImm> gvars, long nativeStackStart, long nativeStackEnd, IVirtualMemory vm, List<IEStateHooks> memhooks) -
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 IVirtualMemoryMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator with parameters of type IVirtualMemoryModifier and TypeMethodDescriptiondefault voidEEmulator.ITaskSupervisor.onProcessCreated(int pidx, Object clientTag, IVirtualMemory vm, int tidx) -
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 INativeStringItemDataStringUtil.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 StringDataStringUtil.determineValue(INativeStringItem item, IVirtualMemory mem, boolean reEncodingValidation) Determine the value of a given string data item.static StringDataStringUtil.determineValue(StringEncoding st, IVirtualMemory mem, long address, int size, boolean reEncodingValidation) Determine the value of a string.static StringDataStringUtil.getStringAt(IVirtualMemory mem, long address, int minChars, int maxChars) Attempt to create a string from the memory bytes located at the provided address.static StringDataStringUtil.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 StringEntryDataStringUtil.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 StringDataStringUtil.getValidStringAt(INativeCodeModel<?> model, IVirtualMemory mem, long address, int minChars, int maxChars) Determine whether the memory bytes at the provided address look like a string and return its value.static booleanDataStringUtil.isSafeAsciiCharArrayAt(IVirtualMemory mem, long address, int size) Indicate if there is an ascii char array at a given address.static booleanDataStringUtil.isSafeAsciiStringAt(IVirtualMemory mem, long address, int minChars, int maxChars) static booleanDataStringUtil.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 booleanDataStringUtil.isValidCharAt(IVirtualMemory mem, long address, long endAddress, StringEncoding st) Determine of char at a given address is valid.static booleanDataStringUtil.isValidStringAt(INativeCodeModel<?> model, 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 TypeInterfaceDescriptioninterfaceAshimis 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 TypeClassDescriptionclassA skeleton implementation for virtual memory classes.Methods in com.pnfsoftware.jeb.core.units.code.asm.memory that return IVirtualMemoryModifier and TypeMethodDescriptionstatic IVirtualMemoryVirtualMemoryUtil.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 longVirtualMemoryUtil.allocate(IVirtualMemory mem, long start, int size, int protection) Search an available range and allocate at least the requested amount of bytes.static intVirtualMemoryUtil.allocateFillGaps(IVirtualMemory mem, long address, int size, int protection) Allocate a memory range, filling gaps in between already allocated pages if needed.static booleanVirtualMemoryUtil.canRead(IVirtualMemory mem, long addr, int size) static booleanVirtualMemoryUtil.canWrite(IVirtualMemory mem, long addr, int size) static booleanVirtualMemoryUtil.checkPermissions(IVirtualMemory mem, long addr, int size, int wantedPermissions) static booleanVirtualMemoryUtil.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 voidVirtualMemoryUtil.dump(IVirtualMemory vm, long addr, long addrEnd, byte[] dst, int dstOffset) Dump a contiguous memory range of memory to a buffer.static voidVirtualMemoryUtil.dumpToImageFiles(IVirtualMemory vm, File folder) Dump a virtual memory to files in a folder.static voidVirtualMemoryUtil.dumpToImageFiles(IVirtualMemory vm, File folder, String pfx, String sfx) Dump a virtual memory to files in a folder.static longVirtualMemoryUtil.findAvailableRange(IVirtualMemory mem, long start, int size) Search for an available memory range.static longVirtualMemoryUtil.findByte(IVirtualMemory mem, long address, long lastAddress, int val) Search for a single byte of memory.static longVirtualMemoryUtil.findBytes(IVirtualMemory mem, boolean bypassProtection, long address, long lastAddress, byte[] pattern, byte[] patternMask) Search for bytes in memory, with an optional binary mask.static IVirtualMemoryShimVirtualMemoryUtil.getCopyOnWriteShim(IVirtualMemory mem) Create a copy-on-write shim of the provided virtual memory, if possible.static booleanVirtualMemoryUtil.isPageAllocated(IVirtualMemory mem, long address) Verify if a page was allocated (regardless of protection rights on the page).static BigIntegerVirtualMemoryUtil.readAsBigIntegerSafe(IVirtualMemory mem, long address) Read an Big Integer (16-bytes).static BigIntegerVirtualMemoryUtil.readAsBigIntegerSafe(IVirtualMemory mem, Endianness endianness, long address) static LongVirtualMemoryUtil.readAsLongSafe(IVirtualMemory mem, long address, int size) Read an integer (byte, short, int or long) and converts it to Long.static LongVirtualMemoryUtil.readAsLongSafe(IVirtualMemory mem, Endianness endianness, long address, int size) static LongVirtualMemoryUtil.readAsUnsignedLongSafe(IVirtualMemory mem, long address, int size) Read an integer (byte, short, int or long) and zero extend it to Long.static LongVirtualMemoryUtil.readAsUnsignedLongSafe(IVirtualMemory mem, Endianness endianness, long address, int size) static booleanVirtualMemoryUtil.readBEIntSafe(IVirtualMemory mem, long address, int[] out) Read a big-endian 32-bit integer.static booleanVirtualMemoryUtil.readBELongSafe(IVirtualMemory mem, long address, long[] out) Read a big-endian 64-bit integer.static booleanVirtualMemoryUtil.readBEShortSafe(IVirtualMemory mem, long address, short[] out) Read a big-endian 16-bit integer.static booleanVirtualMemoryUtil.readBooleans(IVirtualMemory mem, long address, boolean[] array, int offset, int count, boolean bypassProtection) Read an array of booleans from memory.static booleanVirtualMemoryUtil.readByte(IVirtualMemory mem, long address, byte[] out, boolean bypassProtection) Read a byte safely (this method does not raiseMemoryException).static booleanVirtualMemoryUtil.readBytes(IVirtualMemory mem, long address, byte[] array, int offset, int count) Read an array of bytes from memory.static booleanVirtualMemoryUtil.readBytes(IVirtualMemory mem, long address, byte[] array, int offset, int count, boolean bypassProtection) Read an array of bytes from memory.static booleanVirtualMemoryUtil.readByteSafe(IVirtualMemory mem, long address, byte[] out) Read a byte safely (this method does not raiseMemoryException).static intVirtualMemoryUtil.readBytesSafe(IVirtualMemory mem, long address, int size, byte[] dst, int dstOffset, boolean bypassProtection) Safely read at most the requested amount of bytes.static intVirtualMemoryUtil.readBytesSafe(IVirtualMemory mem, long address, int size, byte[] dst, int dstOffset, int protection) Safely read at most the requested amount of bytes.static booleanVirtualMemoryUtil.readChars(IVirtualMemory mem, long address, char[] array, int offset, int count, boolean bypassProtection) Read an array of chars from memory.static booleanVirtualMemoryUtil.readDoubles(IVirtualMemory mem, long address, double[] array, int offset, int count, boolean bypassProtection) Read an array of doubles from memory.static booleanVirtualMemoryUtil.readFloats(IVirtualMemory mem, long address, float[] array, int offset, int count, boolean bypassProtection) Read an array of floats from memory.static booleanVirtualMemoryUtil.readInt(IVirtualMemory mem, long address, int[] out, boolean bypassProtection) static booleanVirtualMemoryUtil.readInts(IVirtualMemory mem, long address, int[] array, int offset, int count, boolean bypassProtection) Read an array of ints from memory.static booleanVirtualMemoryUtil.readLEIntSafe(IVirtualMemory mem, long address, int[] out) Read a little-endian 32-bit integer.static booleanVirtualMemoryUtil.readLELongSafe(IVirtualMemory mem, long address, long[] out) Read a little-endian 64-bit integer.static booleanVirtualMemoryUtil.readLEShortSafe(IVirtualMemory mem, long address, short[] out) Read a little-endian 16-bit integer.static booleanVirtualMemoryUtil.readLong(IVirtualMemory mem, long address, long[] out, boolean bypassProtection) static booleanVirtualMemoryUtil.readLongs(IVirtualMemory mem, long address, long[] array, int offset, int count, boolean bypassProtection) Read an array of longs from memory.static StringVirtualMemoryUtil.readNullTerminatedString(IVirtualMemory mem, long address) Read a null-terminated string from memory.static StringVirtualMemoryUtil.readNullTerminatedString(IVirtualMemory mem, long address, int maxSize) Read a null-terminated string from memory.static StringVirtualMemoryUtil.readNullTerminatedString(IVirtualMemory mem, long address, int maxSize, String encoding) Read a null-terminated string from memory.static StringVirtualMemoryUtil.readNullTerminatedStringSafe(IVirtualMemory mem, long address, int maxSize) Deprecated.this method is deprecated.static booleanVirtualMemoryUtil.readSafe(IVirtualMemory mem, long address, byte[] data) Read an array of bytes from memory (this method does not raiseMemoryException).static booleanVirtualMemoryUtil.readShort(IVirtualMemory mem, long address, short[] out, boolean bypassProtection) static booleanVirtualMemoryUtil.readShorts(IVirtualMemory mem, long address, short[] array, int offset, int count, boolean bypassProtection) Read an array of shorts from memory.static booleanVirtualMemoryUtil.writeBooleans(IVirtualMemory mem, long address, boolean[] array, int offset, int count, boolean bypassProtection) Write an array of booleans to memory.static booleanVirtualMemoryUtil.writeByte(IVirtualMemory mem, long address, byte v) Write an 8-bit integer.static booleanVirtualMemoryUtil.writeByte(IVirtualMemory mem, long address, byte v, boolean bypassProtection) Write an 8-bit integer.static booleanVirtualMemoryUtil.writeBytes(IVirtualMemory mem, long address, byte[] array, int offset, int count) Write an array of bytes to memory.static booleanVirtualMemoryUtil.writeBytes(IVirtualMemory mem, long address, byte[] array, int offset, int count, boolean bypassProtection) Write an array of bytes to memory.static booleanVirtualMemoryUtil.writeChars(IVirtualMemory mem, long address, char[] array, int offset, int count, boolean bypassProtection) Write an array of chars to memory.static booleanVirtualMemoryUtil.writeDoubles(IVirtualMemory mem, long address, double[] array, int offset, int count, boolean bypassProtection) Write an array of doubles to memory.static booleanVirtualMemoryUtil.writeFloats(IVirtualMemory mem, long address, float[] array, int offset, int count, boolean bypassProtection) Write an array of floats to memory.static booleanVirtualMemoryUtil.writeInt(IVirtualMemory mem, long address, int v, boolean bypassProtection) static booleanVirtualMemoryUtil.writeInts(IVirtualMemory mem, long address, int[] array, int offset, int count, boolean bypassProtection) Write an array of ints to memory.static booleanVirtualMemoryUtil.writeLEIntSafe(IVirtualMemory mem, long address, int v) Write a little-endian 32-bit integer.static booleanVirtualMemoryUtil.writeLELongSafe(IVirtualMemory mem, long address, long v) Write a little-endian 64-bit integer.static booleanVirtualMemoryUtil.writeLEShortSafe(IVirtualMemory mem, long address, short v) Write a little-endian 16-bit integer.static booleanVirtualMemoryUtil.writeLong(IVirtualMemory mem, long address, long v, boolean bypassProtection) static booleanVirtualMemoryUtil.writeLongs(IVirtualMemory mem, long address, long[] array, int offset, int count, boolean bypassProtection) Write an array of longs to memory.static booleanVirtualMemoryUtil.writeNullTerminatedBytes(IVirtualMemory mem, long address, int maxSize, byte[] bytes) Write a sequence of bytes to memory.static booleanVirtualMemoryUtil.writeSafe(IVirtualMemory mem, long address, byte[] data) Write an array of bytes to memory (this method does not raiseMemoryException).static booleanVirtualMemoryUtil.writeShort(IVirtualMemory mem, long address, short v, boolean bypassProtection) static booleanVirtualMemoryUtil.writeShorts(IVirtualMemory mem, long address, short[] array, int offset, int count, boolean bypassProtection) Write an array of shorts to memory.static booleanVirtualMemoryUtil.writeSled(IVirtualMemory mem, long address, int cnt, byte val, boolean bypassProtection) Write a sled of bytes.static booleanVirtualMemoryUtil.writeStringField(IVirtualMemory mem, long objBaseAddress, IStructureType structType, String fieldName, String value) Write the string field of a structure object to memory.static booleanVirtualMemoryUtil.writeZeros(IVirtualMemory mem, long address, int cnt, boolean bypassProtection) Write a sled of zeros.Constructors in com.pnfsoftware.jeb.core.units.code.asm.memory with parameters of type IVirtualMemoryModifierConstructorDescriptionBuf(byte[] bytes, int baseoff, INativeType t, IVirtualMemory vm) Create 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 TypeInterfaceDescriptioninterfaceExtension 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 IVirtualMemoryELFStandardRelocOperations.memIELFRelocationApplicator.RelocatedFile.memMethods in com.pnfsoftware.jeb.core.units.codeobject that return IVirtualMemoryModifier and TypeMethodDescriptionprotected IVirtualMemoryAbstractCodeObjectUnit.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 booleanAbstractCodeObjectUnit.applyRelocations(IVirtualMemory mem, long base, ILinkInfoProvider linkInfoPrv) Relocate a mapped code object.booleanAbstractCodeObjectUnit.map(IVirtualMemory mem, long wantedBase, boolean applyRelocations, ILinkInfoProvider linkInfoPrv) booleanICodeObjectUnit.map(IVirtualMemory mem, long wantedBase, boolean applyRelocations, ILinkInfoProvider linkInfoPrv) Map this object file onto virtual memory.protected booleanAbstractCodeObjectUnit.mapRawNoReloc(IVirtualMemory mem, long base) Map the object's segments at the provided base without applying relocations.longILinkInfoProvider.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)