diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java index ffd1b0e0a8d777c2fb3172d0de5e2f65df5afcd8..55658e75d253c3eb882400f43f55fd074bfa2336 100644 --- a/fuzzer/Fuzzer.java +++ b/fuzzer/Fuzzer.java @@ -6,6 +6,7 @@ import java.util.Random; /* a stub for your team's fuzzer */ public class Fuzzer { + private static final String OUTPUT_FILE = "fuzz.txt"; private static Instruction[] INSTRUCTIONS = Instruction.values(); private static PrintWriter pw = null; private static final int MAX_LINE_LENGTH = 1022; @@ -13,39 +14,15 @@ public class Fuzzer { public static void main(String[] args) throws IOException { System.out.println(Instruction.getBNF()); - //int instructionCount = getRandomInt(0, MAX_INSTRUCTIONS); - try{ - boolean hasPoc = false; - for(int i = 0; i<300;i++){ - generateCorpus(hasPoc); - hasPoc = true; - } - - }catch(Exception e){ - System.out.println("Error during generating corpus..."); - } - } + int instructionCount = getRandomInt(0, MAX_INSTRUCTIONS); - public static void generateCorpus(boolean hasPoc) throws Exception{ - String OUTPUT_FILE = "..\\tests\\fuzz"+System.currentTimeMillis()+".txt"; FileOutputStream out = null; PrintWriter pw = null; + try { out = new FileOutputStream(OUTPUT_FILE); pw = new PrintWriter(out); - - int maxLenth = MAX_INSTRUCTIONS; - if(!hasPoc){ - //special command combination - String pocStr135 = "push "+ getRandomInt(0, MAX_LINE_LENGTH - "push ".length())+"\n"+"store "+getRandomName(MAX_LINE_LENGTH - "store ".length(), false); - String pocStr2 = "push "+ getRandomInt(0, MAX_LINE_LENGTH - "push ".length())+"\n"+"+"+"\n"+"print"; - String pocStr4 = "push "+ getRandomInt(0, MAX_LINE_LENGTH - "push ".length())+"\n"+"-"+"\n"+"print"; - pw.println(pocStr135); - pw.println(pocStr2); - pw.println(pocStr4); - maxLenth = MAX_INSTRUCTIONS-8; - } - for (int i = 0; i < maxLenth; i++) { + for (int i = 0; i < instructionCount; i++) { Instruction instruction = getRandomInstruction(); String outputString = instruction.getOpcode(); if (instruction.equals(Instruction.PUSH) || instruction.equals(Instruction.LOAD) @@ -69,7 +46,6 @@ public class Fuzzer { } pw.println(outputString); } - } catch (Exception e) { e.printStackTrace(System.err); System.exit(1); @@ -81,6 +57,7 @@ public class Fuzzer { out.close(); } } + } public static Instruction getRandomInstruction() {