SandMark version 2.0


sandmark.watermark.objectwm
Class Insertion

java.lang.Object
  |
  +--sandmark.watermark.objectwm.Insertion

public class Insertion
extends java.lang.Object


Field Summary
(package private) static de.fub.bytecode.generic.Instruction bipushObj
           
(package private) static de.fub.bytecode.generic.InstructionHandle[] branchInstrHandles
           
(package private) static de.fub.bytecode.generic.ClassGen cgObj
           
(package private) static java.lang.String className
           
(package private) static de.fub.bytecode.generic.ConstantPoolGen cpgObj
           
(package private) static de.fub.bytecode.classfile.ConstantPool cpObj
           
(package private) static boolean[] firstOpaq1insert
           
(package private) static de.fub.bytecode.generic.FieldInstruction getstaticObj
           
(package private) static de.fub.bytecode.generic.InstructionHandle ihEmbedStartObj
           
(package private) static int incrVector
           
(package private) static de.fub.bytecode.generic.InstructionList instrListObj
           
(package private) static de.fub.bytecode.classfile.JavaClass jcObj
           
(package private) static int localIndexObj
           
(package private) static int[] mark
           
(package private) static int methodNameSuffix
           
(package private) static de.fub.bytecode.generic.MethodGen mgObj
           
(package private) static de.fub.bytecode.generic.NEWARRAY naObj
           
(package private)  int numClasses
           
(package private) static int numEmbedOptions
           
(package private) static int[][] numInstr
           
(package private) static java.util.Vector numMethods
           
(package private) static int numOpaquePredOptions
           
(package private) static de.fub.bytecode.classfile.Method oldmethod
           
(package private) static int[] opaq1varW
           
(package private) static int[] opaq1varX
           
(package private) static int[] opaq1varY
           
(package private) static int[] opaq1varZ
           
(package private) static de.fub.bytecode.classfile.ClassParser pObj
           
(package private) static de.fub.bytecode.generic.FieldInstruction putstaticObj
           
(package private) static int statVarSuffix
           
(package private) static de.fub.bytecode.generic.InstructionHandle targetHandleObj
           
(package private) static int[] vecfreq
           
 
Constructor Summary
(package private) Insertion()
           
 
Method Summary
(package private)  boolean checkSplitVectorGrp(int instrIndex, de.fub.bytecode.generic.InstructionHandle[] instrHandles)
           
(package private)  int codeMatch(java.lang.String[] str1, java.lang.String[] str2, int numInstr)
           
 de.fub.bytecode.generic.Instruction extractInstrType(java.lang.String instr)
           
(package private)  de.fub.bytecode.generic.InstructionHandle getCodeSubstPoint(java.lang.String[] instrGrp, int numInstr, java.lang.String[] origCodeStr)
           
 void getInsertLocation(java.lang.Integer[] index)
           
(package private)  int getLocalVarIndex_CreateIndex()
           
(package private)  int getOpaqueDeclPoint(int mIndex)
           
 int getRandomValue(int low, int high)
           
static void init_Opaqs()
           
(package private)  void insertOpaque0(de.fub.bytecode.generic.InstructionList iListOpaque, de.fub.bytecode.generic.InstructionHandle ihStart, de.fub.bytecode.generic.InstructionHandle ihOpaque, de.fub.bytecode.generic.InstructionHandle ihJumpTarget)
           
(package private)  void insertOpaque1(de.fub.bytecode.generic.InstructionList iListOpaque, de.fub.bytecode.generic.InstructionHandle ihStart, de.fub.bytecode.generic.InstructionHandle ihOpaque, de.fub.bytecode.generic.InstructionHandle ihJumpTarget, int mIndex)
           
(package private)  void insertOpaque2(de.fub.bytecode.generic.InstructionList iListOpaque, de.fub.bytecode.generic.InstructionHandle ihStart, de.fub.bytecode.generic.InstructionHandle ihOpaque, de.fub.bytecode.generic.InstructionHandle ihJumpTarget)
           
(package private)  void insertOpaque3(de.fub.bytecode.generic.InstructionList iListOpaque, de.fub.bytecode.generic.InstructionHandle ihStart, de.fub.bytecode.generic.InstructionHandle ihOpaque, de.fub.bytecode.generic.InstructionHandle ihJumpTarget)
           
 void modifyCode(java.util.Vector wmVector)
          Entry procedure for this 'Insertion' class
 int newcopyMethod_Embed(java.lang.String[] instrGrpInstr, int numInstr, int numVectors, int currVecIndex)
           
 void newsubstituteInstruction_Embed(java.lang.String[] substInstr, int numInstr)
           
(package private)  int remVecfreqUpdatesInThreshold(int numVectors, int currVecIndex)
           
 void substituteCode(de.fub.bytecode.generic.InstructionHandle insertih, java.lang.String[] subInstr, int numInstr)
           
 void substituteNewCode(de.fub.bytecode.generic.InstructionHandle insertih, java.lang.String[] subInstr, int numInstr)
           
(package private)  java.lang.String transformCode(java.lang.String subInstr)
           
(package private)  int varTypeIsInt(int varIndex)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

incrVector

static int incrVector

methodNameSuffix

static int methodNameSuffix

statVarSuffix

static int statVarSuffix

className

static java.lang.String className

numEmbedOptions

static int numEmbedOptions

numOpaquePredOptions

static int numOpaquePredOptions

pObj

static de.fub.bytecode.classfile.ClassParser pObj

jcObj

static de.fub.bytecode.classfile.JavaClass jcObj

cgObj

static de.fub.bytecode.generic.ClassGen cgObj

cpObj

static de.fub.bytecode.classfile.ConstantPool cpObj

cpgObj

static de.fub.bytecode.generic.ConstantPoolGen cpgObj

mgObj

static de.fub.bytecode.generic.MethodGen mgObj

instrListObj

static de.fub.bytecode.generic.InstructionList instrListObj

putstaticObj

static de.fub.bytecode.generic.FieldInstruction putstaticObj

getstaticObj

static de.fub.bytecode.generic.FieldInstruction getstaticObj

naObj

static de.fub.bytecode.generic.NEWARRAY naObj

bipushObj

static de.fub.bytecode.generic.Instruction bipushObj

localIndexObj

static int localIndexObj

targetHandleObj

static de.fub.bytecode.generic.InstructionHandle targetHandleObj

oldmethod

static de.fub.bytecode.classfile.Method oldmethod

ihEmbedStartObj

static de.fub.bytecode.generic.InstructionHandle ihEmbedStartObj

branchInstrHandles

static de.fub.bytecode.generic.InstructionHandle[] branchInstrHandles

vecfreq

static int[] vecfreq

numClasses

int numClasses

numMethods

static java.util.Vector numMethods

numInstr

static int[][] numInstr

mark

static int[] mark

opaq1varW

static int[] opaq1varW

opaq1varX

static int[] opaq1varX

opaq1varY

static int[] opaq1varY

opaq1varZ

static int[] opaq1varZ

firstOpaq1insert

static boolean[] firstOpaq1insert
Constructor Detail

Insertion

Insertion()
Method Detail

init_Opaqs

public static void init_Opaqs()

getRandomValue

public int getRandomValue(int low,
                          int high)

getInsertLocation

public void getInsertLocation(java.lang.Integer[] index)

extractInstrType

public de.fub.bytecode.generic.Instruction extractInstrType(java.lang.String instr)

insertOpaque0

void insertOpaque0(de.fub.bytecode.generic.InstructionList iListOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihStart,
                   de.fub.bytecode.generic.InstructionHandle ihOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihJumpTarget)

insertOpaque1

void insertOpaque1(de.fub.bytecode.generic.InstructionList iListOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihStart,
                   de.fub.bytecode.generic.InstructionHandle ihOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihJumpTarget,
                   int mIndex)

insertOpaque2

void insertOpaque2(de.fub.bytecode.generic.InstructionList iListOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihStart,
                   de.fub.bytecode.generic.InstructionHandle ihOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihJumpTarget)

insertOpaque3

void insertOpaque3(de.fub.bytecode.generic.InstructionList iListOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihStart,
                   de.fub.bytecode.generic.InstructionHandle ihOpaque,
                   de.fub.bytecode.generic.InstructionHandle ihJumpTarget)

codeMatch

int codeMatch(java.lang.String[] str1,
              java.lang.String[] str2,
              int numInstr)

getCodeSubstPoint

de.fub.bytecode.generic.InstructionHandle getCodeSubstPoint(java.lang.String[] instrGrp,
                                                            int numInstr,
                                                            java.lang.String[] origCodeStr)
                                                      throws WatermarkingException,
                                                             java.io.IOException,
                                                             de.fub.bytecode.generic.TargetLostException
WatermarkingException
java.io.IOException
de.fub.bytecode.generic.TargetLostException

substituteCode

public void substituteCode(de.fub.bytecode.generic.InstructionHandle insertih,
                           java.lang.String[] subInstr,
                           int numInstr)

varTypeIsInt

int varTypeIsInt(int varIndex)

getLocalVarIndex_CreateIndex

int getLocalVarIndex_CreateIndex()

transformCode

java.lang.String transformCode(java.lang.String subInstr)

substituteNewCode

public void substituteNewCode(de.fub.bytecode.generic.InstructionHandle insertih,
                              java.lang.String[] subInstr,
                              int numInstr)

getOpaqueDeclPoint

int getOpaqueDeclPoint(int mIndex)

checkSplitVectorGrp

boolean checkSplitVectorGrp(int instrIndex,
                            de.fub.bytecode.generic.InstructionHandle[] instrHandles)

newsubstituteInstruction_Embed

public void newsubstituteInstruction_Embed(java.lang.String[] substInstr,
                                           int numInstr)
                                    throws java.io.IOException
java.io.IOException

remVecfreqUpdatesInThreshold

int remVecfreqUpdatesInThreshold(int numVectors,
                                 int currVecIndex)

newcopyMethod_Embed

public int newcopyMethod_Embed(java.lang.String[] instrGrpInstr,
                               int numInstr,
                               int numVectors,
                               int currVecIndex)
                        throws java.io.IOException
java.io.IOException

modifyCode

public void modifyCode(java.util.Vector wmVector)
                throws java.io.IOException,
                       WatermarkingException,
                       de.fub.bytecode.generic.TargetLostException
Entry procedure for this 'Insertion' class

java.io.IOException
WatermarkingException
de.fub.bytecode.generic.TargetLostException

SandMark version 2.0

Mon Jun 17 12:30:47 MST 2002