Uses of Interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEImm
Packages that use IEImm
Package
Description
This package and its sub-packages contain the types used to access
gendec, JEB's generic
decompiler.Types used to create and access
gendec's IR (Intermediate Representation).IR emulator facility.
Types specific to
gendec's IR optimizers.-
Uses of IEImm in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return IEImmModifier and TypeMethodDescriptionIEGlobalContext.createImm(byte[] v, int bitsize) IEGlobalContext.createImm(double v) IEGlobalContext.createImm(float v) IEGlobalContext.createImm(long v, int bitsize) IEGlobalContext.createImm(BigInteger v, int bitsize) IERoutineContext.createImm(byte[] v, int bitsize) IERoutineContext.createImm(double v) IERoutineContext.createImm(float v) IERoutineContext.createImm(long v, int bitsize) IERoutineContext.createImm(BigInteger v, int bitsize) AbstractConverter.evaluateUntranslatedIR(IEUntranslatedInstruction insn, IERoutineContext ectx, EState state) The default implementation returns null.IEConverter.evaluateUntranslatedIR(IEUntranslatedInstruction insn, IERoutineContext ectx, EState state) Evaluate untranslated IR instructions. -
Uses of IEImm in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type parameters of type IEImmModifier and TypeFieldDescriptionSimulationPointInformation.blkPostExecRegValsSimulationPointInformation.blkPreExecRegValsEState.StateInfo.gvarsMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return IEImmModifier and TypeMethodDescriptionPerform an addition.Perform a binary-and operation.IEImm._clearbit(int pos) Reset a given bit to 0.Perform a signed division.Perform an unsigned division.Add this IEEE-754 float to another float immediate and return the result.Divide this IEEE-754 float by another float immediate and return the result.Multiply this IEEE-754 float to another float immediate and return the result.Subtract the IEEE-754 float parameter from this float immediate and return the result.Perform a (truncated) multiplication.IEImm._neg()Perform a negation.IEImm._not()Perform a binary-not operation.Perform a binary-or operation.IEImm._pow(int exponent) Perform an exponentiation.Perform a signed remainder (modulo) operation.Perform an unsigned remainder (modulo) operation.IEImm._rol(int cnt) Perform a left-rotate operation.IEImm._ror(int cnt) Perform a right-rotate operation.IEImm._sar(int cnt) Perform an arithmetic right-shift operation (sign bit is maintained).IEImm._setbit(int pos) Set a given bit to 1.IEImm._shl(int cnt) Perform a left-shift operation.IEImm._shr(int cnt) Perform a regular right-shift operation.Perform a subtraction.Perform a binary-xor operation.default IEImmIEGeneric.asImm()static IEImmEUtil.composeImms(IEGlobalContext g, IEImm... elts) IEImm.duplicate()The resulting copy may not be mutable.IEImm.duplicateToMutable()Create a mutable copy of this immediate.IEImm.duplicateWithType(IWildcardType type) Create a mutable copy of this immediate and assign it a type.Evaluate the IRE.static IEImmEUtil.evaluate_preVerified(IEGeneric e) static IEImmEUtil.evaluate_preVerified(IEGeneric e, EState state) IEImm.expand(int bits) Expand (zero-extension) this immediate.EState.getProgramCounter()Convenience method to read the PC.EState.getStackPointer()Convenience method to read the SP.EState.getValue(int id) Retrieve the value of a variable.Retrieve the value of a variable.EState.getValueSafe(int id) Retrieve the value of a variable.EState.getValueSafe(IEVar var) Retrieve the value of a variable.static IEImmEUtil.imm(byte[] val, int bitsize) Create an arbitrary-long immediate.static IEImmEUtil.imm(long val, int bitsize) Create an immediate, limited to 64 bits.static IEImmCreate an arbitrary-long immediate.static IEImmEUtil.imm(BigInteger val, int bitsize) Create an arbitrary-long immediate.static IEImmEUtil.int32ArrayToImm(IEGlobalContext g, int[] dst) static IEImmEUtil.int32ArrayToImm(IEGlobalContext g, int[] dst, int index, int indexEnd) static IEImmEUtil.mask(int bitsize, int maskbits) Create a bit mask, eg mask(16, 4) will create the mask:b0000000000001111static IEImmEUtil.mask(int bitsize, int maskbegin, int maskend) Create a bit mask, eg mask(16, 1, 5) will create the mask:b0000000000011110static IEImmEUtil.minusOne(int bitsize) Generates the value -1, ie anEImmfilled with ones.IEImm.normalize()Normalize this immediate bvy generating an immediate whose internal representation better matches the type.static IEImmEUtil.one(int bitsize) Generates the value 1L with defined bitsize.PreRoutineInvocationDetails.readArg(IEConverter<?> cv, StorageEntry entry) IEImm.signExtend(int newBitsize) IEImm.truncate(int bits) Truncate this immediate or sign-extend it.static IEImmEUtil.zero(int bitsize) Generates the value 0 with defined bitsize.IEImm.zeroExtend(int newBitsize) Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return types with arguments of type IEImmModifier and TypeMethodDescriptionPreRoutineInvocationDetails.getStackSlotValues()PreRoutineInvocationDetails.getVariableMap()EState.getVariables()EState.Frame.getVars()Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type IEImmModifier and TypeMethodDescriptionPerform an addition.Perform a binary-and operation.intPerform a signed operand comparison.intPerform an unsigned operand comparison.Perform a signed division.Perform an unsigned division.Add this IEEE-754 float to another float immediate and return the result.Compare this IEEE-754 float with another float immediate and return 0, +1, -1 depending on the result of the comparison.Divide this IEEE-754 float by another float immediate and return the result.Multiply this IEEE-754 float to another float immediate and return the result.Subtract the IEEE-754 float parameter from this float immediate and return the result.Perform a (truncated) multiplication.Perform a binary-or operation.Perform a signed remainder (modulo) operation.Perform an unsigned remainder (modulo) operation.Perform a subtraction.Perform a binary-xor operation.static IEImmEUtil.composeImms(IEGlobalContext g, IEImm... elts) static intEUtil.evalAsPositiveInt(IEImm imm) Evaluate an immediate to a 32-bit positive int.static intEUtil.evalAsSaturatedPositiveInt(IEImm imm) Evaluate and convert a positive immediate to a 32-bit int.static int[]EUtil.immToInt32Array(IEImm val) static voidEUtil.immToInt32Array(IEImm val, int[] dst, int index) static booleanEUtil.isLegalSignedImmediate(IEImm v, int checkedBitsize) Verify that the provided immediate is a legal signed value if it were to be treated as a signed integer of `checkedBitsize`.static booleanEUtil.isLegalUnsignedImmediate(IEImm v, int checkedBitsize) Verify that the provided immediate is a legal unsigned value if it were to be treated as an unsigned integer of `checkedBitsize`.voidEState.setProgramCounter(IEImm val) Convenience method to write the PC.voidEState.setStackPointer(IEImm val) Convenience method to write the SP.voidSet a variable or the slice of a variable to the provided value.voidSet a variable to a defined value or the BAD value.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type arguments of type IEImmModifier and TypeMethodDescriptionstatic CharSequenceEState.formatVars(Map<Integer, IEImm> vars, IEGlobalContext gctx, IERoutineContext ctx) static CharSequenceEState.formatVars(Map<Integer, IEImm> vars, IEGlobalContext gctx, IERoutineContext ctx, Collection<Integer> includedIds, Collection<Integer> excludedIds, boolean skipZeroRegs) voidEState.setVariables(Map<Integer, IEImm> vars) Replace the variables of this state by another set of variables.Constructor parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type arguments of type IEImmModifierConstructorDescriptionStateInfo(Map<Integer, IEImm> gvars, long nativeStackStart, long nativeStackEnd, IVirtualMemory vm, List<IEStateHooks> memhooks) -
Uses of IEImm in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator that return IEImmModifier and TypeMethodDescriptionEEmulator.getLastEvaluationResult()EEmulator.getRegisterValue(String regname) EEmulator.getReturnAddress()EEmulator.getReturnValue()EEmulator.readStorage(StorageEntry entry) Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator with parameters of type IEImmModifier and TypeMethodDescriptionvoidEEmulator.addArgument(IEImm val) voidEEmulator.setLastEvaluationResult(IEImm val) voidEEmulator.setRegisterValue(String regname, IEImm val) booleanEEmulator.threadTerminate(int idx, IEImm retVal) booleanEEmulator.writeStorage(StorageEntry entry, IEImm val) Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator with type arguments of type IEImmModifier and TypeMethodDescriptionintEEmulator.processCreate(int pid, Long startAddress, Map<String, IEImm> regmap) Fork a process and optionally start a new main thread in the forked process.voidEEmulator.setArguments(Collection<IEImm> vals) intEEmulator.threadCreate(long routineAddress, long pseudoReturnAddress, Map<String, IEImm> regmap) -
Uses of IEImm in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt that return IEImmModifier and TypeMethodDescriptionEMasterOptimizer.getDefaultInput(int reg) IEMasterOptimizer.getDefaultInput(int reg) Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt with parameters of type IEImmModifier and TypeMethodDescriptionvoidEMasterOptimizer.addDefaultInput(int bit, IEImm val) voidIEMasterOptimizer.addDefaultInput(int bit, IEImm val)