com.pnfsoftware.jeb.core.units.code.asm.decompiler.IERoutineContext |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | CFGTAG_FINAL | ||||||||||
String | CFGTAG_FINAL_PRENORM | ||||||||||
String | CFGTAG_STKANA | ||||||||||
String | CFGTAG_SYMBOLICALLY_SIMPLIFIED | ||||||||||
String | CFGTAG_TYPED | ||||||||||
String | CFGTAG_UNFLATTENED |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract Long |
convertIntermediateOffset(int offset)
Conversion FROM IR offset TO native address.
| ||||||||||
abstract Long | convertIntermediateOffset(int offset, boolean logConversionErrors) | ||||||||||
abstract Long | convertNativeAddress(long address, boolean logConversionErrors) | ||||||||||
abstract Long |
convertNativeAddress(long address)
Conversion FROM native address to IR offset.
| ||||||||||
abstract IEAssign | createAssign(IEGeneric dst, IEGeneric src) | ||||||||||
abstract IEAssign | createAssignIf(IEAssign assignTpl, IEGeneric predicate) | ||||||||||
abstract IEAssign | createBranchAssign(IEGeneric dst, IEGeneric src, boolean subroutineCall) | ||||||||||
abstract IECall | createCall(IEGeneric callsite, IEGeneric retloc, List<IEGeneric> returns, List<IEGeneric> params, int stackPointerDelta, List<IEGeneric> spoiledExpressions) | ||||||||||
abstract IECompose | createCompose(Collection<IEGeneric> elts) | ||||||||||
abstract IECompose | createCompose(IEGeneric... elts) | ||||||||||
abstract IECond | createCond(IEGeneric p, IEGeneric a, IEGeneric b) | ||||||||||
abstract IEVar | createGlobalSymbol(INativeItem item) | ||||||||||
abstract IEImm | createImm(long v, int bitsize) | ||||||||||
abstract IEImm | createImm(byte[] v, int bitsize) | ||||||||||
abstract IEJump | createJump(int branchAddress, IEGeneric condition) | ||||||||||
abstract IEJump | createJump(int branchAddress) | ||||||||||
abstract IEJumpFar | createJumpFar(IEGeneric jumpSite, IEGeneric condition) | ||||||||||
abstract IEJumpFar | createJumpFar(IEGeneric jumpSite) | ||||||||||
abstract IEMem | createMem(IEGeneric segment, IEGeneric opaddr, int bitsize) | ||||||||||
abstract IEMem | createMem(IEGeneric opaddr, int bitsize) | ||||||||||
abstract IENop | createNop() | ||||||||||
abstract IENop | createNop(IEStatement template) | ||||||||||
abstract IEOperation | createOperation(OperationType optype, IEGeneric op1) | ||||||||||
abstract IEOperation | createOperation(OperationType optype, IEGeneric op1, IEGeneric op2) | ||||||||||
abstract IEReturn | createReturn(IEGeneric value) | ||||||||||
abstract IEReturn | createReturn() | ||||||||||
abstract IEReturn | createReturn(List<IEGeneric> values) | ||||||||||
abstract IESwitch | createSwitch(IEGeneric controlExpression, int defaultAddress) | ||||||||||
abstract IEUntranslatedInstruction | createUntranslatedInstruction(long nativeAddress, String nativeMnemonic, IEGeneric... irOperands) | ||||||||||
abstract IEVar |
createVar(String name, int bitsize)
Create or retrieve a special routine-scope variable.
| ||||||||||
abstract IEVar |
createVirtualVar(String name, int bitsize)
Create or retrieve a virtual routine-scope variable.
| ||||||||||
abstract CFG<IEStatement> | getCfg(String tag) | ||||||||||
abstract CFG<IEStatement> | getCfg() | ||||||||||
abstract String | getCfgDefaultTag() | ||||||||||
abstract INativeDecompilerUnit<?> | getDecompiler() | ||||||||||
abstract IEGlobalContext | getGlobalContext() | ||||||||||
abstract int |
getProgramCounterId()
Convenience method.
| ||||||||||
abstract INativeMethodItem | getRoutine() | ||||||||||
abstract INativeMethodDataItem | getRoutineData() | ||||||||||
abstract int |
getStackPointerId()
Convenience method.
| ||||||||||
abstract List<IEStatement> |
getStatements()
Retrieve the raw list of converted IR-statements.
| ||||||||||
abstract ITypeManager | getTypeManager() | ||||||||||
abstract IEVar |
getVariableByName(String name)
Retrieve a routine-scope variable by name.
| ||||||||||
abstract IWildcardTypeManager | getWildcardTypeManager() | ||||||||||
abstract boolean | isKeepingNonDefaultCfgs() | ||||||||||
abstract boolean | isTyped() | ||||||||||
abstract void | registerAdditionalConvertedAddress(long nativeAddress, int expectedOffset) | ||||||||||
abstract void | registerConvertedAddress(long nativeAddress, int intermediateOffset) | ||||||||||
abstract void | registerConvertedAddressRange(long nativeAddress, int intermediateOffset, int interOffsetEnd) | ||||||||||
abstract void | setCfg(String tag, CFG<IEStatement> cfg, boolean makeDefault) | ||||||||||
abstract void | setCfgDefaultTag(String tag) | ||||||||||
abstract void | setStatements(List<IEStatement> statements, boolean verify, boolean buildCfg) |
Conversion FROM IR offset TO native address.
offset | IR offset |
---|
Conversion FROM native address to IR offset. The IR offset is an int, but returned as a long to conveniently manipulate it with IInstruction.
address | physical address |
---|
Create or retrieve a special routine-scope variable. The varible id is in the
[SPECIAL
, SPECIAL_END
] range.
Clients should avoid using this method. Non-stack routine-scope variables created by
third-party code should generally be in the VIRTUAL range. See the
createVirtualVar(String, int)
method.
Create or retrieve a virtual routine-scope variable. The varible id is in the
[VIRTUAL
, VIRTUAL_END
] range.
Convenience method.
Convenience method.
Retrieve the raw list of converted IR-statements. Beware: this list gets stale very quickly, as the decompiler deals with and optimizes an IR-CFG (initially built from this list), instead.
Retrieve a routine-scope variable by name.