| 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.