public interface

INativeCodeModel

implements IInstructionAugmenter IMemoryModel
com.pnfsoftware.jeb.core.units.code.asm.analyzer.INativeCodeModel<InsnType extends com.pnfsoftware.jeb.core.units.code.IInstruction>

Class Overview

Memory model manager for native code unit, normally handled by a code analyzer.

Summary

Public Methods
abstract BasicBlock<InsnType> getBasicBlockHeader(long address)
abstract ICallGraphManager getCallGraphManager()
abstract List<Long> getContainedRoutineAddresses(long address)
Get the list of routines which contain the instruction at the given address.
abstract IReferenceManager getReferenceManager()
abstract List<Long> getRoutineAddresses()
abstract boolean isBasicBlockHeader(long address)
abstract boolean isRoutineHeader(long address)
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.asm.analyzer.IInstructionAugmenter
From interface com.pnfsoftware.jeb.core.units.code.asm.analyzer.IMemoryModel

Public Methods

public abstract BasicBlock<InsnType> getBasicBlockHeader (long address)

public abstract ICallGraphManager getCallGraphManager ()

public abstract List<Long> getContainedRoutineAddresses (long address)

Get the list of routines which contain the instruction at the given address. The address must be the exact address of an instruction. If the address is the routine header or any instruction contained in a routine header block, then the returned list will contain a single element. For other addresses, the returned list may contain more than one address, for cases where a basic block is used among two or more routines. Note that this is not the norm; compiler-generated code generates routines whose code do not overlap with other routines, for most cases.

Returns
  • a list, potentially empty

public abstract IReferenceManager getReferenceManager ()

public abstract List<Long> getRoutineAddresses ()

public abstract boolean isBasicBlockHeader (long address)

public abstract boolean isRoutineHeader (long address)