public class TaintInterpreter extends Interpreter<TaintValue>
api| 构造器和说明 |
|---|
TaintInterpreter(int api) |
| 限定符和类型 | 方法和说明 |
|---|---|
TaintValue |
binaryOperation(AbstractInsnNode insn,
TaintValue value1,
TaintValue value2)
Interprets a bytecode instruction with two arguments.
|
TaintValue |
copyOperation(AbstractInsnNode insn,
TaintValue value)
Interprets a bytecode instruction that moves a value on the stack or to
or from local variables.
|
TaintValue |
merge(TaintValue v,
TaintValue w)
Merges two values.
|
TaintValue |
naryOperation(AbstractInsnNode insn,
java.util.List<? extends TaintValue> values)
Interprets a bytecode instruction with a variable number of arguments.
|
TaintValue |
newOperation(AbstractInsnNode insn)
Interprets a bytecode instruction without arguments.
|
TaintValue |
newValue(Type type)
Creates a new value that represents the given type.
|
void |
returnOperation(AbstractInsnNode insn,
TaintValue value,
TaintValue expected)
Interprets a bytecode return instruction.
|
void |
setCurrentResult(TaintResult naiveTaintResult) |
void |
setTaintBits(TaintBits tb) |
TaintValue |
ternaryOperation(AbstractInsnNode insn,
TaintValue value1,
TaintValue value2,
TaintValue value3)
Interprets a bytecode instruction with three arguments.
|
TaintValue |
unaryOperation(AbstractInsnNode insn,
TaintValue value)
Interprets a bytecode instruction with a single argument.
|
public TaintValue newValue(Type type)
Interpreterthis), exception
handler variable and with null type for variables reserved
by long and double types.newValue 在类中 Interpreter<TaintValue>type - a primitive or reference type, or null to represent
an uninitialized value.public TaintValue newOperation(AbstractInsnNode insn) throws AnalyzerException
InterpreternewOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.AnalyzerException - if an error occured during the interpretation.public TaintValue copyOperation(AbstractInsnNode insn, TaintValue value) throws AnalyzerException
InterpretercopyOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.value - the value that must be moved by the instruction.AnalyzerException - if an error occured during the interpretation.public TaintValue unaryOperation(AbstractInsnNode insn, TaintValue value) throws AnalyzerException
InterpreterunaryOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.value - the argument of the instruction to be interpreted.AnalyzerException - if an error occured during the interpretation.public TaintValue binaryOperation(AbstractInsnNode insn, TaintValue value1, TaintValue value2) throws AnalyzerException
InterpreterbinaryOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.value1 - the first argument of the instruction to be interpreted.value2 - the second argument of the instruction to be interpreted.AnalyzerException - if an error occured during the interpretation.public TaintValue ternaryOperation(AbstractInsnNode insn, TaintValue value1, TaintValue value2, TaintValue value3) throws AnalyzerException
InterpreterternaryOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.value1 - the first argument of the instruction to be interpreted.value2 - the second argument of the instruction to be interpreted.value3 - the third argument of the instruction to be interpreted.AnalyzerException - if an error occured during the interpretation.public TaintValue naryOperation(AbstractInsnNode insn, java.util.List<? extends TaintValue> values) throws AnalyzerException
InterpreternaryOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.values - the arguments of the instruction to be interpreted.AnalyzerException - if an error occured during the interpretation.public void returnOperation(AbstractInsnNode insn, TaintValue value, TaintValue expected) throws AnalyzerException
InterpreterreturnOperation 在类中 Interpreter<TaintValue>insn - the bytecode instruction to be interpreted.value - the argument of the instruction to be interpreted.expected - the expected return type of the analyzed method.AnalyzerException - if an error occured during the interpretation.public TaintValue merge(TaintValue v, TaintValue w)
Interpretermerge 在类中 Interpreter<TaintValue>v - a value.w - another value.public void setCurrentResult(TaintResult naiveTaintResult)
public void setTaintBits(TaintBits tb)