public interface

IEStackManager

com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStackManager

Class Overview

Element of an IR context providing support for creating local vars representing stack variables.

Summary

Public Methods
abstract boolean canClearNativeStack(long addressBegin, long addressEnd)
abstract boolean canCreateVariable(long offset, int bitsize)
abstract void clearNativeStack(long addressBegin, long addressEnd)
abstract IEVar createPureStackItem(long offset, int bitsize)
Create a pure IEVar, regardless of a referenced native stack.
abstract IEVar createStackItem(long preferredOffset, int preferredBitsize)
Create a new stack variable.
abstract IWildcardType getActualStackItemType(long offset)
abstract Long getHighestVariableOffset()
abstract Long getHighestVariableOffsetEnd()
abstract Long getLowestVariableOffset()
abstract int getNormalSlotBitsize()
abstract int getNormalSlotSize()
abstract IERoutineContext getRoutineContext()
abstract IEVar getVariable(long offset)
abstract IEVar getVariableAtSlot(int index)
abstract Collection<IEVar> getVariables()
abstract boolean hasVariables()
abstract IEVar removeVariable(long offset)
abstract IEVar removeVariable(IEVar var)

Public Methods

public abstract boolean canClearNativeStack (long addressBegin, long addressEnd)

public abstract boolean canCreateVariable (long offset, int bitsize)

public abstract void clearNativeStack (long addressBegin, long addressEnd)

public abstract IEVar createPureStackItem (long offset, int bitsize)

Create a pure IEVar, regardless of a referenced native stack.

public abstract IEVar createStackItem (long preferredOffset, int preferredBitsize)

Create a new stack variable. May return null, may be at different offset and/or with a different size. The IEVar created may be larger than the actual hit size!! eg, native item is int64, on a 32-bit slot stack. A corresponding native stack item will be created. This method may fail if existing native items conflict with the requested creation.

Parameters
preferredOffset relative stack offset in bytes
preferredBitsize requested variable size in bits - must be a multiple of 2
Returns
  • the IEVar, null on error

public abstract IWildcardType getActualStackItemType (long offset)

public abstract Long getHighestVariableOffset ()

public abstract Long getHighestVariableOffsetEnd ()

public abstract Long getLowestVariableOffset ()

public abstract int getNormalSlotBitsize ()

public abstract int getNormalSlotSize ()

public abstract IERoutineContext getRoutineContext ()

public abstract IEVar getVariable (long offset)

public abstract IEVar getVariableAtSlot (int index)

public abstract Collection<IEVar> getVariables ()

public abstract boolean hasVariables ()

public abstract IEVar removeVariable (long offset)

public abstract IEVar removeVariable (IEVar var)