public interface

IEUntranslatedInstruction

implements IEStatement
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEUntranslatedInstruction

Class Overview

Special IR statement that can be used to wrap non-standard, partially translated, or untranslated native code instructions. The untranslated native instruction can be seen as a blackbox; the IR EUntranslatedInstruction can be seen as a variant of ECall.

By default, IR-Evaluation fails and C-Generation yields basic boilerplate. Both can be customized in the converter.

Default memory access information is set to NONE and can be customized.

Summary

Constants
String TAG_CUSTOM_NAME Tag name for an optional entry holding the custom name of this untranslated IR, possibly better suited than the native mnemonic name.
[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement
Public Methods
abstract void addSideEffectDefinedVariable(IEVar... vars)
abstract void addSideEffectSpoiledVariable(IEVar... vars)
abstract void addSideEffectUsedVariable(IEVar... vars)
abstract MemoryAccessInfo getMemoryAccessInfo()
abstract long getNativeAddress()
abstract String getNativeMnemonic()
abstract IEGeneric getParameterExpression(int index)
abstract List<IEGeneric> getParameterExpressions()
abstract IEGeneric getReturnExpression()
Retrieve the primary return expression (if the IR returns a tuple, the primary return expression if the first item in the tuple).
abstract List<IEGeneric> getReturnExpressions()
Get the tuple returned by this IR.
abstract Set<IEVar> getSideEffectDefinedVariables()
abstract Set<IEVar> getSideEffectSpoiledVariables()
abstract Set<IEVar> getSideEffectUsedVariables()
abstract Object getTag()
Get the optional default tag.
abstract Object getTag(String key)
Retrieve a tag.
abstract Map<String, Object> getTags()
Retrieve a copy of all the tags.
abstract void setBreakingFlow(IFlowInformation flowinfo)
abstract void setMemoryAccessInfo(MemoryAccessInfo info)
abstract void setNativeAddress(long nativeAddress)
abstract void setNativeMnemonic(String mnemonic)
abstract void setParameterExpressions(Collection<IEGeneric> params)
abstract void setParameterExpressions(IEGeneric... params)
abstract void setReturnExpression(IEGeneric expression)
Set a single return expression.
abstract void setReturnExpressions(List<IEGeneric> expressions)
Set the tuple returned by this IR.
abstract void setReturnExpressions(IEGeneric... expressions)
abstract void setRoutineCall(IFlowInformation flowinfo)
abstract void setTag(Object tag)
Set an optional default tag.
abstract void setTag(String key, Object tag)
Store a tag.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.IInstruction
From interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
From interface com.pnfsoftware.jeb.core.units.code.IResizableInstruction
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement

Constants

public static final String TAG_CUSTOM_NAME

Tag name for an optional entry holding the custom name of this untranslated IR, possibly better suited than the native mnemonic name.

Value: String.

Constant Value: "CUSTOM_NAME"

Public Methods

public abstract void addSideEffectDefinedVariable (IEVar... vars)

public abstract void addSideEffectSpoiledVariable (IEVar... vars)

public abstract void addSideEffectUsedVariable (IEVar... vars)

public abstract MemoryAccessInfo getMemoryAccessInfo ()

public abstract long getNativeAddress ()

public abstract String getNativeMnemonic ()

public abstract IEGeneric getParameterExpression (int index)

public abstract List<IEGeneric> getParameterExpressions ()

Returns
  • the actual list (can be modified; do not insert nulls)

public abstract IEGeneric getReturnExpression ()

Retrieve the primary return expression (if the IR returns a tuple, the primary return expression if the first item in the tuple).

public abstract List<IEGeneric> getReturnExpressions ()

Get the tuple returned by this IR.

Returns
  • the actual list (can be modified; do not insert nulls)

public abstract Set<IEVar> getSideEffectDefinedVariables ()

public abstract Set<IEVar> getSideEffectSpoiledVariables ()

public abstract Set<IEVar> getSideEffectUsedVariables ()

public abstract Object getTag ()

Get the optional default tag.

public abstract Object getTag (String key)

Retrieve a tag.

public abstract Map<String, Object> getTags ()

Retrieve a copy of all the tags. The tag with the null key is the default tag.

public abstract void setBreakingFlow (IFlowInformation flowinfo)

public abstract void setMemoryAccessInfo (MemoryAccessInfo info)

public abstract void setNativeAddress (long nativeAddress)

public abstract void setNativeMnemonic (String mnemonic)

public abstract void setParameterExpressions (Collection<IEGeneric> params)

public abstract void setParameterExpressions (IEGeneric... params)

public abstract void setReturnExpression (IEGeneric expression)

Set a single return expression.

Parameters
expression an expression, or null to specify that this IRE does not return anything

public abstract void setReturnExpressions (List<IEGeneric> expressions)

Set the tuple returned by this IR.

Parameters
expressions a list consisting of non-null expressions

public abstract void setReturnExpressions (IEGeneric... expressions)

public abstract void setRoutineCall (IFlowInformation flowinfo)

public abstract void setTag (Object tag)

Set an optional default tag. Same as setTag(null, object). The tag must be serializable.

Parameters
tag a simple immutable Java object annotated @Ser

public abstract void setTag (String key, Object tag)

Store a tag. Same as getTag(null)

Parameters
key mandatory key
tag null to remove; else, must be a simple immutable Java object