com.h3xstream.findsecbugs.taintanalysis
Class TaintFrameModelingVisitor

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>
      extended by com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor
All Implemented Interfaces:
org.apache.bcel.generic.Visitor, org.apache.bcel.generic.VisitorSupportsInvokeDynamic

public class TaintFrameModelingVisitor
extends edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

Visitor to make instruction transfer of taint values easier

Author:
David Formanek (Y Soft Corporation, a.s.)

Field Summary
 
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg
 
Constructor Summary
TaintFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg, TaintMethodSummaryMap methodSummaries)
           
 
Method Summary
 Taint getDefaultValue()
           
 void handleLoadInstruction(org.apache.bcel.generic.LoadInstruction obj)
           
 void visitAALOAD(org.apache.bcel.generic.AALOAD obj)
           
 void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj)
           
 void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj)
           
 void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj)
           
 void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj)
           
 void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj)
           
 void visitLDC(org.apache.bcel.generic.LDC obj)
           
 void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj)
           
 void visitNEW(org.apache.bcel.generic.NEW obj)
           
 
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
analyzeInstruction, getCPG, getFrame, getLocation, getNumWordsConsumed, getNumWordsProduced, handleNormalInstruction, handleStoreInstruction, modelInstruction, modelNormalInstruction, setFrameAndLocation, visitAASTORE, visitAllocationInstruction, visitALOAD, visitANEWARRAY, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, visitBranchInstruction, visitBREAKPOINT, visitCALOAD, visitCASTORE, visitCHECKCAST, visitConstantPushInstruction, visitConversionInstruction, visitConversionInstruction2, visitCPInstruction, visitD2F, visitD2I, visitD2L, visitDADD, visitDALOAD, visitDASTORE, visitDCMPG, visitDCMPL, visitDCONST, visitDDIV, visitDLOAD, visitDMUL, visitDNEG, visitDREM, visitDRETURN, visitDSTORE, visitDSUB, visitDUP_X1, visitDUP_X2, visitDUP, visitDUP2_X1, visitDUP2_X2, visitDUP2, visitExceptionThrower, visitF2D, visitF2I, visitF2L, visitFADD, visitFALOAD, visitFASTORE, visitFCMPG, visitFCMPL, visitFCONST, visitFDIV, visitFieldInstruction, visitFieldOrMethod, visitFLOAD, visitFMUL, visitFNEG, visitFREM, visitFRETURN, visitFSTORE, visitFSUB, visitGETFIELD, visitGETSTATIC, visitGOTO_W, visitGOTO, visitGotoInstruction, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIADD, visitIALOAD, visitIAND, visitIASTORE, visitICONST, visitIDIV, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFEQ, visitIFGE, visitIFGT, visitIfInstruction, visitIFLE, visitIFLT, visitIFNE, visitIFNONNULL, visitIFNULL, visitIINC, visitILOAD, visitIMPDEP1, visitIMPDEP2, visitIMUL, visitINEG, visitINSTANCEOF, visitINVOKEDYNAMIC, visitInvokeInstruction, visitIOR, visitIREM, visitIRETURN, visitISHL, visitISHR, visitISTORE, visitISUB, visitIUSHR, visitIXOR, visitJSR_W, visitJSR, visitJsrInstruction, visitL2D, visitL2F, visitL2I, visitLADD, visitLALOAD, visitLAND, visitLASTORE, visitLCMP, visitLCONST, visitLDIV, visitLLOAD, visitLMUL, visitLNEG, visitLoadClass, visitLoadInstruction, visitLocalVariableInstruction, visitLOOKUPSWITCH, visitLOR, visitLREM, visitLRETURN, visitLSHL, visitLSHR, visitLSTORE, visitLSUB, visitLUSHR, visitLXOR, visitMONITORENTER, visitMONITOREXIT, visitMULTIANEWARRAY, visitNEWARRAY, visitNONNULL2Z, visitNOP, visitNULL2Z, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTFIELD, visitPUTSTATIC, visitRET, visitRETURN, visitReturnInstruction, visitSALOAD, visitSASTORE, visitSelect, visitSIPUSH, visitStackConsumer, visitStackInstruction, visitStackProducer, visitStoreInstruction, visitSWAP, visitTABLESWITCH, visitTypedInstruction, visitUnconditionalBranch, visitVariableLengthInstruction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TaintFrameModelingVisitor

public TaintFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg,
                                 TaintMethodSummaryMap methodSummaries)
Method Detail

getDefaultValue

public Taint getDefaultValue()
Specified by:
getDefaultValue in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitLDC

public void visitLDC(org.apache.bcel.generic.LDC obj)
Specified by:
visitLDC in interface org.apache.bcel.generic.Visitor
Overrides:
visitLDC in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitLDC2_W

public void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj)
Specified by:
visitLDC2_W in interface org.apache.bcel.generic.Visitor
Overrides:
visitLDC2_W in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitACONST_NULL

public void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj)
Specified by:
visitACONST_NULL in interface org.apache.bcel.generic.Visitor
Overrides:
visitACONST_NULL in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitNEW

public void visitNEW(org.apache.bcel.generic.NEW obj)
Specified by:
visitNEW in interface org.apache.bcel.generic.Visitor
Overrides:
visitNEW in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

handleLoadInstruction

public void handleLoadInstruction(org.apache.bcel.generic.LoadInstruction obj)
Overrides:
handleLoadInstruction in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitINVOKEINTERFACE

public void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj)
Specified by:
visitINVOKEINTERFACE in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKEINTERFACE in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitINVOKESPECIAL

public void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj)
Specified by:
visitINVOKESPECIAL in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKESPECIAL in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitINVOKESTATIC

public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj)
Specified by:
visitINVOKESTATIC in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKESTATIC in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitINVOKEVIRTUAL

public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj)
Specified by:
visitINVOKEVIRTUAL in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKEVIRTUAL in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>

visitAALOAD

public void visitAALOAD(org.apache.bcel.generic.AALOAD obj)
Specified by:
visitAALOAD in interface org.apache.bcel.generic.Visitor
Overrides:
visitAALOAD in class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Taint,TaintFrame>


Copyright © 2015. All rights reserved.