Skip to content
Snippets Groups Projects

Vuln jay

Closed Jay Parikh requested to merge jparikh/swen90006-a2-2019:vuln-jay into master
14 files
+ 398
59
Compare changes
  • Side-by-side
  • Inline
Files
14
+ 56
0
import java.security.SecureRandom;
public class Command {
private Instruction instruction;
private String[] arguments;
private static final int COMMAND_LENGTH = 1022;
private static final SecureRandom rand = new SecureRandom();
Command(Instruction instruction, String[] arguments) {
this.instruction = instruction;
this.arguments = arguments;
}
public String toString() {
String argumentString = "";
for (String arg : arguments) {
argumentString += " " + arg;
}
String command = instruction.getOpcode() + argumentString;
if (command.length() > Command.COMMAND_LENGTH) {
return command.substring(0, Command.COMMAND_LENGTH);
}
return command;
}
public Instruction getInstruction() {
return this.instruction;
}
public String[] getArguments() {
return this.arguments;
}
private static String randomString(int length) {
String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String lower = upper.toLowerCase();
String digits = "0123456789";
char[] symbols = (upper + lower + digits).toCharArray();
char[] buffer = new char[length];
for (int i = 0; i < length; i++) {
buffer[i] = symbols[rand.nextInt(symbols.length)];
}
return new String(buffer);
}
public static Command randomCommand() {
Instruction instruction = Instruction.randomInstruction();
String[] arguments = new String[instruction.getOperands().length];
for (int j = 0; j < arguments.length; j++) {
arguments[j] = Command.randomString(rand.nextInt((COMMAND_LENGTH / 3) - 1) + 1);
}
return new Command(instruction, arguments);
}
}
Loading