<dependencies>
<dependency>
<groupId>com.ibm.wala</groupId>
<artifactId>com.ibm.wala.core</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>com.ibm.wala</groupId>
<artifactId>com.ibm.wala.shrike</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
import com.ibm.wala.shrikeBT.*;
import com.ibm.wala.shrikeCT.*;
import java.io.*;
public class ShrikeExample {
public static void main(String[] args) {
try {
Module M = ShrikeCTranslator.translate("Hello.class");
ClassReader CR = M.makeClassReader();
ClassWriter CW = new ClassWriter(CR);
ClassReaderSource source = new ReaderInterpreterSource(CW);
for (MethodData md : CR.getAllMethods()) {
IMethod m = md.makeMethod(CW.getReader(), ClassReader.IGNORE_FRAMES);
IInstruction[] instructions = m.getInstructions();
IInstruction[] newInstructions = new IInstruction[instructions.length + 1];
newInstructions[0] = AConstNullInstruction.make();
System.arraycopy(instructions, 0, newInstructions, 1, instructions.length);
m.updateInstructions(Arrays.asList(newInstructions));
m.visitCode();
m.visitEnd();
}
FileOutputStream fos = new FileOutputStream("HelloModified.class");
CW.emitTo(fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}